Skip to main content

Config

Struct Config 

Source
pub struct Config {
    pub preset: Preset,
    pub toolsets: BTreeSet<Toolset>,
    pub max_tier: Tier,
    pub disabled: BTreeSet<Surface>,
    pub cli_path: Option<PathBuf>,
    pub max_result_bytes: usize,
    pub api_base_url: String,
    pub tailnet: String,
    pub log_filter: String,
    pub http: Option<HttpConfig>,
}
Expand description

The configuration the server actually runs with.

Fields§

§preset: Preset

The preset the selection started from, kept for diagnostics.

§toolsets: BTreeSet<Toolset>

The toolsets to offer, after any adjustment.

§max_tier: Tier

The most dangerous tier permitted.

§disabled: BTreeSet<Surface>

Surfaces the operator switched off. A surface can also be unavailable because its backend is missing, which is decided at startup, not here.

§cli_path: Option<PathBuf>§max_result_bytes: usize§api_base_url: String

Where the control-plane calls go. The real control plane unless a test or a staging environment says otherwise; validated when the client is built, because that is where the rule about what is safe lives.

§tailnet: String

The tailnet a control-plane path means when the caller does not name one.

§log_filter: String§http: Option<HttpConfig>

Serve over HTTP instead of stdio, when the operator asked for it.

Implementations§

Source§

impl Config

Source

pub fn resolve(cli: Cli) -> Result<Self, ConfigError>

Resolve the command line against the process environment.

Source

pub fn resolve_with( cli: Cli, source: impl Fn(&str) -> Option<String>, ) -> Result<Self, ConfigError>

Resolve the command line against an arbitrary source of variables.

Source

pub fn is_disabled(&self, surface: Surface) -> bool

Whether the operator switched this surface off.

Source

pub fn changed_settings(&self) -> Vec<(&'static str, String)>

The settings that differ from what this server would do on its own, as the variables that would reproduce them.

This is resolve run backwards, which is why it lives beside it: every field it reads and every variable it names is this module’s, and a setting added to one without the other is a snippet that does not reproduce the server it was printed from.

Only what the operator changed. A snippet spelling out every default would be a snippet nobody reads, and every value in it would go stale the day a default changed.

Trait Implementations§

Source§

impl Clone for Config

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Config

Source§

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

Formats the value using the given formatter. 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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<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