Skip to main content

OptionsGenerator

Struct OptionsGenerator 

Source
pub struct OptionsGenerator {
    pub registry: Arc<ConfigRegistry>,
}
Expand description

Completion source for :set — option names, and name=value pairs for options whose type enumerates its values.

Stateless beyond the shared registry handle: every [CandidateGenerator::generate] call re-walks the registry, so options registered later (a plugin’s, a renderer’s) appear without rebuilding the generator. Candidates are unfiltered; the lattice-completion matcher narrows them against the prefix.

§Examples

use std::sync::Arc;
use lattice_config::{ConfigRegistry, OptionsGenerator};

let registry = Arc::new(ConfigRegistry::new());
registry.init_from_linkme();
let generator = OptionsGenerator::new(Arc::clone(&registry));
assert!(Arc::ptr_eq(&generator.registry, &registry));

Fields§

§registry: Arc<ConfigRegistry>

The registry walked on each generate call. Shared, not snapshotted: registrations after construction are visible.

Implementations§

Source§

impl OptionsGenerator

Source

pub fn new(registry: Arc<ConfigRegistry>) -> Self

A generator over registry.

Trait Implementations§

Source§

impl CandidateGenerator for OptionsGenerator

Source§

fn generate(&self, ctx: &GenerateContext<'_>) -> Vec<RawCandidate>

§

fn cache_key(&self, _ctx: &GenerateContext<'_>) -> Option<CacheKey>

Optional cache key. When two contexts produce the same Some(key), the pipeline serves the second from cache. The query (prefix) is implicitly part of the key only if the generator includes it – many generators key on a registry version (cache covers all queries until the registry changes) and let the matcher do the per-query filtering.
§

fn cache_ttl(&self) -> Duration

Soft TTL for cache entries. After elapsing, the entry is regenerated on next access. Defaults to no expiry.

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.

§

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