Skip to main content

ValuesStore

Struct ValuesStore 

Source
pub struct ValuesStore { /* private fields */ }
Expand description

Validates and serves option values, reloading them lazily on read and serving the current snapshot lock-free via ArcSwap. See refresh for the staleness window and memory-ordering details.

Implementations§

Source§

impl ValuesStore

Source

pub fn new( registry: Arc<SchemaRegistry>, values_dir: &Path, ) -> ValidationResult<Self>

Builds a store with the default configuration and performs the initial values load synchronously.

Use builder to override the configuration.

Source

pub fn with_propagation_callback( registry: Arc<SchemaRegistry>, values_dir: &Path, callback: PropagationCallback, ) -> ValidationResult<Self>

👎Deprecated:

use ValuesStore::builder(...).with_callback(...) instead

Builds a store with a callback that fires whenever new values are detected.

Source

pub fn builder( registry: Arc<SchemaRegistry>, values_dir: &Path, ) -> ValuesStoreBuilder

Returns a builder for constructing a store from the given registry and values directory.

Source

pub fn registry(&self) -> &Arc<SchemaRegistry> ⓘ

The registry the store was constructed with.

Source

pub fn load(&self) -> Guard<Arc<ValuesByNamespace>>

Returns a guard onto the current values snapshot, refreshing first if the cached snapshot is older than refresh_threshold + jitter.

Source

pub fn force_load(&self) -> Guard<Arc<ValuesByNamespace>>

Like load, but always refreshes, ignoring the staleness threshold. The mtime check still applies, so unchanged files are not re-read from disk.

Source

pub fn refresh(&self) -> ValidationResult<bool>

Refreshes values from disk, ignoring the staleness threshold.

Returns whether a new snapshot was published, i.e. the files changed on disk (by mtime) and reloaded successfully. On error the previous snapshot is retained. Propagation callbacks fire on the calling thread before this returns.

Any call resets the refresh-on-read timer, so calling this more often than the threshold guarantees reads never refresh inline.

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