summaryrefslogtreecommitdiff
path: root/libs/shared/src
diff options
context:
space:
mode:
Diffstat (limited to 'libs/shared/src')
-rw-r--r--libs/shared/src/config.rs14
-rw-r--r--libs/shared/src/lib.rs13
-rw-r--r--libs/shared/src/nats.rs17
-rw-r--r--libs/shared/src/payloads.rs2
-rw-r--r--libs/shared/src/redis.rs6
5 files changed, 26 insertions, 26 deletions
diff --git a/libs/shared/src/config.rs b/libs/shared/src/config.rs
index adcaf79..cdf0bd3 100644
--- a/libs/shared/src/config.rs
+++ b/libs/shared/src/config.rs
@@ -5,22 +5,24 @@ use std::{env, ops::Deref};
use tracing::info;
#[derive(Debug, Deserialize, Clone)]
-pub struct Settings<T: Clone + DeserializeOwned + Default> {
+pub struct Settings<T: Clone + DeserializeOwned> {
#[serde(skip_deserializing)]
pub config: T,
- pub nats: crate::nats::NatsConfiguration,
- pub redis: crate::redis::RedisConfiguration,
+ pub nats: crate::nats::Configuration,
+ pub redis: crate::redis::Configuration,
}
impl<T: Clone + DeserializeOwned + Default> Settings<T> {
- pub fn new(service_name: &str) -> Result<Settings<T>> {
+ /// # Errors
+ /// Fails it the config could not be deserialized to `Self::T`
+ pub fn new(service_name: &str) -> Result<Self> {
let mut builder = Config::builder();
builder = builder.add_source(File::with_name("config/default"));
let mode = env::var("ENV").unwrap_or_else(|_| "development".into());
info!("Configuration Environment: {}", mode);
- builder = builder.add_source(File::with_name(&format!("config/{}", mode)).required(false));
+ builder = builder.add_source(File::with_name(&format!("config/{mode}")).required(false));
builder = builder.add_source(File::with_name("config/local").required(false));
let env = Environment::with_prefix("NOVA").separator("__");
@@ -28,7 +30,7 @@ impl<T: Clone + DeserializeOwned + Default> Settings<T> {
builder = builder.add_source(env);
let config = builder.build()?;
- let mut settings: Settings<T> = config.clone().try_deserialize()?;
+ let mut settings: Self = config.clone().try_deserialize()?;
// try to load the config
settings.config = config.get::<T>(service_name)?;
diff --git a/libs/shared/src/lib.rs b/libs/shared/src/lib.rs
index a714a1b..92e7a05 100644
--- a/libs/shared/src/lib.rs
+++ b/libs/shared/src/lib.rs
@@ -1,5 +1,14 @@
-/// This crate is all the utilities shared by the nova rust projects
-/// It includes logging, config and protocols.
+#![deny(
+ clippy::all,
+ clippy::correctness,
+ clippy::suspicious,
+ clippy::style,
+ clippy::complexity,
+ clippy::perf,
+ clippy::pedantic,
+ clippy::nursery,
+)]
+
pub mod config;
pub mod nats;
pub mod payloads;
diff --git a/libs/shared/src/nats.rs b/libs/shared/src/nats.rs
index 3529c46..7d4d3d1 100644
--- a/libs/shared/src/nats.rs
+++ b/libs/shared/src/nats.rs
@@ -4,23 +4,12 @@ use async_nats::Client;
use serde::Deserialize;
#[derive(Clone, Debug, Deserialize)]
-pub struct NatsConfigurationClientCert {
- pub cert: String,
- pub key: String,
-}
-
-#[derive(Clone, Debug, Deserialize)]
-pub struct NatsConfigurationTls {
- pub mtu: Option<usize>,
-}
-
-#[derive(Clone, Debug, Deserialize)]
-pub struct NatsConfiguration {
+pub struct Configuration {
pub host: String,
}
-impl From<NatsConfiguration> for Pin<Box<dyn Future<Output = anyhow::Result<Client>> + Send>> {
- fn from(value: NatsConfiguration) -> Self {
+impl From<Configuration> for Pin<Box<dyn Future<Output = anyhow::Result<Client>> + Send>> {
+ fn from(value: Configuration) -> Self {
Box::pin(async move { Ok(async_nats::connect(value.host).await?) })
}
}
diff --git a/libs/shared/src/payloads.rs b/libs/shared/src/payloads.rs
index 6e51b2d..3f183a9 100644
--- a/libs/shared/src/payloads.rs
+++ b/libs/shared/src/payloads.rs
@@ -31,7 +31,7 @@ impl<'de> Deserialize<'de> for DispatchEventTagged {
let tagged = DispatchEventTaggedSerialized::deserialize(deserializer)?;
let deserializer_seed = DispatchEventWithTypeDeserializer::new(&tagged.kind);
let dispatch_event = deserializer_seed.deserialize(tagged.data).unwrap();
- Ok(DispatchEventTagged {
+ Ok(Self {
data: dispatch_event,
})
}
diff --git a/libs/shared/src/redis.rs b/libs/shared/src/redis.rs
index a623c2f..77aa97f 100644
--- a/libs/shared/src/redis.rs
+++ b/libs/shared/src/redis.rs
@@ -3,14 +3,14 @@ use serde::Deserialize;
use std::{future::Future, pin::Pin};
#[derive(Clone, Debug, Deserialize)]
-pub struct RedisConfiguration {
+pub struct Configuration {
pub url: String,
}
-impl From<RedisConfiguration>
+impl From<Configuration>
for Pin<Box<dyn Future<Output = anyhow::Result<MultiplexedConnection>> + Send>>
{
- fn from(value: RedisConfiguration) -> Self {
+ fn from(value: Configuration) -> Self {
Box::pin(async move {
let con = Client::open(value.url)?;
let (multiplex, ready) = con.create_multiplexed_tokio_connection().await?;