Struct Config

Source
pub struct Config {
    inner: RwLock<ConfigInner>,
    file: Option<PathBuf>,
}
Expand description

Global configuration for the links redirector server. This is the more idiomatic, easier to use (in rust code), and shareable-across-threads version, which can be updated from a Partial.

Fields§

§inner: RwLock<ConfigInner>§file: Option<PathBuf>

Implementations§

Source§

impl Config

Source

pub fn new(file: Option<PathBuf>) -> Self

Create a new Config instance using the provided file path as the configuration file. Configuration data is parsed from environment variables, the config file, and command-line arguments, in that order. If there is an error with the configuration file or any other configuration source, no error is emitted. Instead, a warning is logged, and the other configuration sources are used.

§IO

This function performs synchronous file IO, and should therefore not be used inside of an asynchronous context.

Source

pub fn new_static(file: Option<PathBuf>) -> &'static Self

Create a new static reference to a new Config instance using the provided file path as the configuration file. Configuration data is parsed from environment variables, the config file, and command-line arguments, in that order. If there is an error with the configuration file or any other configuration source, no error is emitted. Instead, a warning is logged, and the other configuration sources are used.

§Memory

Because this function leaks memory with no (safe) way of freeing it, care should be taken not to call this function an unbounded number of times.

§IO

This function performs synchronous file IO, and should therefore not be used inside of an asynchronous context.

Source

pub fn update(&self)

Update this config from environment variables, config file, and command-line arguments. This function starts with defaults for each option, then updates those from environment variables, then from the config file, then from command-line arguments, and finally overwrites this Config’s options with those newly-parsed ones.

§IO

This function performs synchronous file IO, and should therefore not be used inside of an asynchronous context.

Source

pub fn redirector(&self) -> Redirector

Generate a redirector configuration from the options defined in this global links config.

Source

pub fn log_level(&self) -> LogLevel

Get the configured log level

Source

pub fn token(&self) -> Arc<str>

Get the RPC API token

Source

pub fn listeners(&self) -> Vec<ListenAddress>

Get the list of listener addresses

Source

pub fn statistics(&self) -> StatisticCategories

Get the types of statistics to collect

Source

pub fn default_certificate(&self) -> DefaultCertificateSource

Get the default TLS certificate source

Source

pub fn certificates(&self) -> Vec<CertificateSource>

Get the TLS certificate configuration

Source

pub fn hsts(&self) -> Hsts

Get the hsts configuration option

Source

pub fn https_redirect(&self) -> bool

Get the https_redirect configuration option

Source

pub fn send_alt_svc(&self) -> bool

Get the send_alt_svc configuration option

Source

pub fn send_server(&self) -> bool

Get the send_server configuration option

Source

pub fn send_csp(&self) -> bool

Get the send_csp configuration option

Source

pub fn store(&self) -> BackendType

Get the store type

Source

pub fn store_config(&self) -> HashMap<String, String>

Get the store backend configuration

Source

pub const fn file(&self) -> &Option<PathBuf>

Get the configuration file path

Trait Implementations§

Source§

impl Debug for Config

Source§

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

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

impl Display for Config

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !Freeze for Config

§

impl !RefUnwindSafe for Config

§

impl Send for Config

§

impl Sync for Config

§

impl Unpin for Config

§

impl UnwindSafe for Config

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.

§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
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
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T