pub struct FileManifest { /* private fields */ }Expand description
Tracks per-file state to enable incremental re-indexing.
The header ([manifest_version], [chunker_version], [embedder], [store])
pins the assumptions the entries were built under. When any of them no longer
match the current pipeline, the index must be rebuilt from scratch - see
is_compatible_with.
Implementations§
Source§impl FileManifest
impl FileManifest
Sourcepub fn new(
embedder_fingerprint: impl Into<String>,
store_fingerprint: impl Into<String>,
) -> Self
pub fn new( embedder_fingerprint: impl Into<String>, store_fingerprint: impl Into<String>, ) -> Self
A fresh manifest pinned to the current pipeline, the given embedder
fingerprint (see Embedder::fingerprint),
and the store fingerprint (e.g. its Metric).
pub fn load(index_dir: &Path) -> Self
pub fn save(&self, index_dir: &Path) -> Result<(), RagError>
Sourcepub fn is_compatible_with(
&self,
embedder_fingerprint: &str,
store_fingerprint: &str,
) -> bool
pub fn is_compatible_with( &self, embedder_fingerprint: &str, store_fingerprint: &str, ) -> bool
Whether the stored entries can be trusted for an incremental update given the current embedder and store. False means the schema, the chunker, the embedder, or the store changed and the index must be rebuilt from scratch.
Sourcepub fn is_changed(&self, path: &Path, content: &str) -> bool
pub fn is_changed(&self, path: &Path, content: &str) -> bool
Returns true if the file is new or its content has changed.
Sourcepub fn chunk_ids(&self, path: &Path) -> &[String]
pub fn chunk_ids(&self, path: &Path) -> &[String]
Returns the chunk IDs that were last indexed from this file.
Sourcepub fn record(&mut self, path: PathBuf, content: &str, chunk_ids: Vec<String>)
pub fn record(&mut self, path: PathBuf, content: &str, chunk_ids: Vec<String>)
Record the result of indexing a file.
Trait Implementations§
Source§impl Debug for FileManifest
impl Debug for FileManifest
Source§impl Default for FileManifest
impl Default for FileManifest
Source§impl<'de> Deserialize<'de> for FileManifest
impl<'de> Deserialize<'de> for FileManifest
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for FileManifest
impl RefUnwindSafe for FileManifest
impl Send for FileManifest
impl Sync for FileManifest
impl Unpin for FileManifest
impl UnsafeUnpin for FileManifest
impl UnwindSafe for FileManifest
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
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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> ⓘ
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> ⓘ
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> Pointable for T
impl<T> Pointable for T
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>
ReadEndian::read_from_little_endian().