pub struct StorageFactory;Expand description
A factory for creating storage instances.
This factory creates appropriate storage implementations based on the provided configuration. It follows the same pattern as LexicalIndexFactory.
Implementations§
Source§impl StorageFactory
impl StorageFactory
Sourcepub fn create(config: StorageConfig) -> Result<Arc<dyn Storage>>
pub fn create(config: StorageConfig) -> Result<Arc<dyn Storage>>
Create a new storage instance with the given configuration.
§Arguments
config- Storage configuration (enum containing type-specific settings including path for file storage)
§Returns
A boxed storage implementation based on the configured storage type.
§Example
use laurus::storage::{StorageFactory, StorageConfig};
use laurus::storage::file::FileStorageConfig;
use laurus::storage::memory::MemoryStorageConfig;
// Create memory storage
let config = StorageConfig::Memory(MemoryStorageConfig::default());
let storage = StorageFactory::create(config)?;
// Create file storage
let file_config = FileStorageConfig::new("/tmp/index");
let config = StorageConfig::File(file_config);
let storage = StorageFactory::create(config)?;Auto Trait Implementations§
impl Freeze for StorageFactory
impl RefUnwindSafe for StorageFactory
impl Send for StorageFactory
impl Sync for StorageFactory
impl Unpin for StorageFactory
impl UnsafeUnpin for StorageFactory
impl UnwindSafe for StorageFactory
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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> 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 moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.