diff options
Diffstat (limited to 'libs/shared/src')
| -rw-r--r-- | libs/shared/src/config.rs | 14 | ||||
| -rw-r--r-- | libs/shared/src/lib.rs | 13 | ||||
| -rw-r--r-- | libs/shared/src/nats.rs | 17 | ||||
| -rw-r--r-- | libs/shared/src/payloads.rs | 2 | ||||
| -rw-r--r-- | libs/shared/src/redis.rs | 6 |
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?; |
