multitool_hg::rediska::config

Struct RedisConfig

Source
pub struct RedisConfig {
    pub connection_url: Option<String>,
    pub host: Option<String>,
    pub port: Option<u16>,
    pub username: Option<String>,
    pub password: Option<String>,
    pub db: Option<u64>,
    pub connection_timeout: Duration,
    pub connection_pool_size: u32,
}
Expand description

RedisConfig represents the configuration for connecting to a Redis instance.

This configuration object is used to set up a connection pool to Redis, providing necessary details such as the Redis host, port, authentication credentials, and pool settings.

In more advanced setups, such as Redis clusters or socket connections, the connection_url field can be used to provide a direct connection string. If connection_url is provided, fields like host, port, and db become optional.

Configuration fields can be loaded from various sources, such as YAML, JSON configuration files, or from environment variables.

Example configuration in YAML:

host: localhost
port: 6379
username: username
password: top_secret_password
db: 0
connection_timeout:
  secs: 60
  nanos: 0
connection_pool_size: 10

Another example configuration in YAML:

connection_url: "redis://username:password@localhost:6379/0"
connection_timeout:
  secs: 60
  nanos: 0
connection_pool_size: 10

Fields like connection_timeout and connection_pool_size control how the connection pool behaves.

Fields§

§connection_url: Option<String>

Optional direct connection URL (useful for Redis clusters or socket connections). If connection_url is specified, the host, port, and db fields become optional and are not used.

§host: Option<String>

The Redis server host address (e.g., localhost).

§port: Option<u16>

The port to connect to the Redis server (e.g., 6379 for Redis).

§username: Option<String>

The optional username to authenticate with Redis (mostly used in Redis 6+ with ACLs).

§password: Option<String>

The optional password to authenticate with Redis.

§db: Option<u64>

The database number to connect to (default is 0).

§connection_timeout: Duration

The timeout duration for establishing a connection to the Redis server.

§connection_pool_size: u32

The maximum number of connections allowed in the pool.

Implementations§

Source§

impl RedisConfig

Source

pub fn check(&self) -> Result<()>

Checks the validity of the configuration.

If connection_url is provided, the configuration is considered valid. Otherwise, host, port, and db must be provided for a valid configuration.

§Returns

Ok(()) if the configuration is valid, or an anyhow::Error explaining the missing fields.

Trait Implementations§

Source§

impl Debug for RedisConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for RedisConfig

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for RedisConfig

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,