pub struct EmbeddingRegistry { /* private fields */ }Expand description
A runtime registry of named EmbeddingProvider implementations.
Providers are keyed by EmbeddingProviderInfo::id. An optional default
can be set explicitly via EmbeddingRegistry::set_default; if none is
set, EmbeddingRegistry::default_provider returns the first registered
provider.
Implementations§
Source§impl EmbeddingRegistry
impl EmbeddingRegistry
Sourcepub fn register(&mut self, provider: Arc<dyn EmbeddingProvider>)
pub fn register(&mut self, provider: Arc<dyn EmbeddingProvider>)
Register a provider.
If a provider with the same id already exists it is replaced.
The insertion order of new ids is preserved for use by
EmbeddingRegistry::default_provider.
Sourcepub fn get(&self, id: &str) -> Option<Arc<dyn EmbeddingProvider>>
pub fn get(&self, id: &str) -> Option<Arc<dyn EmbeddingProvider>>
Look up a provider by id.
Returns None if no provider with that id has been registered.
Sourcepub fn list(&self) -> Vec<EmbeddingProviderInfo>
pub fn list(&self) -> Vec<EmbeddingProviderInfo>
Return metadata for all registered providers, in registration order.
Sourcepub fn default_provider(&self) -> Option<Arc<dyn EmbeddingProvider>>
pub fn default_provider(&self) -> Option<Arc<dyn EmbeddingProvider>>
Return the default provider.
- If a default was set via
EmbeddingRegistry::set_default, that provider is returned. - Otherwise the first registered provider is returned.
- Returns
Noneif the registry is empty.
Sourcepub fn set_default(&mut self, id: &str) -> Result<()>
pub fn set_default(&mut self, id: &str) -> Result<()>
Change the default provider.
Returns EngramError::InvalidInput if id is not registered.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for EmbeddingRegistry
impl !RefUnwindSafe for EmbeddingRegistry
impl Send for EmbeddingRegistry
impl Sync for EmbeddingRegistry
impl Unpin for EmbeddingRegistry
impl UnsafeUnpin for EmbeddingRegistry
impl !UnwindSafe for EmbeddingRegistry
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreCreates a shared type from an unshared type.