pub struct InMemoryStore {
docs: RwLock<HashMap<String, StoredDoc>>,
chunks: RwLock<Vec<StoredChunk>>,
vectors: RwLock<Vec<StoredVector>>,
}Expand description
In-memory store for testing and WASM environments.
Fields§
§docs: RwLock<HashMap<String, StoredDoc>>§chunks: RwLock<Vec<StoredChunk>>§vectors: RwLock<Vec<StoredVector>>Implementations§
Source§impl InMemoryStore
impl InMemoryStore
pub fn new() -> InMemoryStore
Trait Implementations§
Source§impl Default for InMemoryStore
impl Default for InMemoryStore
Source§fn default() -> InMemoryStore
fn default() -> InMemoryStore
Returns the “default value” for a type. Read more
Source§impl Store for InMemoryStore
impl Store for InMemoryStore
Source§fn upsert_document<'life0, 'life1, 'async_trait>(
&'life0 self,
doc: &'life1 Document,
) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
InMemoryStore: 'async_trait,
fn upsert_document<'life0, 'life1, 'async_trait>(
&'life0 self,
doc: &'life1 Document,
) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
InMemoryStore: 'async_trait,
Insert or update a document. Read more
Source§fn replace_chunks<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
doc_id: &'life1 str,
chunks: &'life2 [Chunk],
vectors: Option<&'life3 [Vec<f32>]>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
InMemoryStore: 'async_trait,
fn replace_chunks<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
doc_id: &'life1 str,
chunks: &'life2 [Chunk],
vectors: Option<&'life3 [Vec<f32>]>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
InMemoryStore: 'async_trait,
Replace all chunks for a document, optionally storing vectors.
Source§fn upsert_embedding<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 self,
chunk_id: &'life1 str,
doc_id: &'life2 str,
vector: &'life3 [f32],
model: &'life4 str,
dims: usize,
content_hash: &'life5 str,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
InMemoryStore: 'async_trait,
fn upsert_embedding<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 self,
chunk_id: &'life1 str,
doc_id: &'life2 str,
vector: &'life3 [f32],
model: &'life4 str,
dims: usize,
content_hash: &'life5 str,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
InMemoryStore: 'async_trait,
Store or update an embedding vector for a chunk.
Source§fn get_document<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<DocumentResponse>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
InMemoryStore: 'async_trait,
fn get_document<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<DocumentResponse>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
InMemoryStore: 'async_trait,
Retrieve a full document with all its chunks, by ID.
Source§fn get_document_metadata<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<DocumentMetadata>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
InMemoryStore: 'async_trait,
fn get_document_metadata<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<DocumentMetadata>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
InMemoryStore: 'async_trait,
Retrieve lightweight metadata for a document, by ID.
Source§fn keyword_search<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
query: &'life1 str,
limit: i64,
_source: Option<&'life2 str>,
_since: Option<&'life3 str>,
) -> Pin<Box<dyn Future<Output = Result<Vec<ChunkCandidate>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
InMemoryStore: 'async_trait,
fn keyword_search<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
query: &'life1 str,
limit: i64,
_source: Option<&'life2 str>,
_since: Option<&'life3 str>,
) -> Pin<Box<dyn Future<Output = Result<Vec<ChunkCandidate>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
InMemoryStore: 'async_trait,
Perform keyword (full-text) search, returning candidate chunks.
Source§fn vector_search<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
query_vec: &'life1 [f32],
limit: i64,
_source: Option<&'life2 str>,
_since: Option<&'life3 str>,
) -> Pin<Box<dyn Future<Output = Result<Vec<ChunkCandidate>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
InMemoryStore: 'async_trait,
fn vector_search<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
query_vec: &'life1 [f32],
limit: i64,
_source: Option<&'life2 str>,
_since: Option<&'life3 str>,
) -> Pin<Box<dyn Future<Output = Result<Vec<ChunkCandidate>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
InMemoryStore: 'async_trait,
Perform vector similarity search, returning candidate chunks.
Auto Trait Implementations§
impl !Freeze for InMemoryStore
impl RefUnwindSafe for InMemoryStore
impl Send for InMemoryStore
impl Sync for InMemoryStore
impl Unpin for InMemoryStore
impl UnwindSafe for InMemoryStore
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().