pub struct SqliteCache { /* private fields */ }Expand description
Persistent cache in a single SQLite file.
Implementations§
Source§impl SqliteCache
impl SqliteCache
Sourcepub fn import_profile(source: &Path, id: &str) -> Result<CacheProfile>
pub fn import_profile(source: &Path, id: &str) -> Result<CacheProfile>
Select a validated profile without opening the source as a writable cache.
Sourcepub fn import_from(
source: &Path,
destination: &Path,
profile: &CacheProfile,
mappings: &[CacheImportMapping],
) -> Result<CacheImportReport>
pub fn import_from( source: &Path, destination: &Path, profile: &CacheProfile, mappings: &[CacheImportMapping], ) -> Result<CacheImportReport>
Seed an absent or completely empty v7 cache from verified local files. Schema v6 and v7 sources are supported; derived image codes are ignored. Errors roll back schema and data; verification failures drop individual resources and are reported as counts. PDF/audio preparation compatibility is also checked by the runtime on reuse.
Source§impl SqliteCache
impl SqliteCache
Sourcepub fn default_path() -> Result<PathBuf>
pub fn default_path() -> Result<PathBuf>
The default location: <platform cache dir>/seyk/cache.sqlite3.
macOS: ~/Library/Caches/seyk/, Linux: $XDG_CACHE_HOME/seyk/
(usually ~/.cache/seyk/).
pub fn open_default() -> Result<Self>
Sourcepub fn open(path: impl Into<PathBuf>) -> Result<Self>
pub fn open(path: impl Into<PathBuf>) -> Result<Self>
Open or create a cache file. Embeddings can leak information about their source text, so owned directories and the cache file are private to the user.
pub fn path(&self) -> &Path
Trait Implementations§
Source§impl EmbeddingCache for SqliteCache
impl EmbeddingCache for SqliteCache
Source§fn scrub(&mut self) -> Result<CacheCleanup>
fn scrub(&mut self) -> Result<CacheCleanup>
Erase stale FTS postings and historical WAL frames. Busy readers leave work pending.
Source§fn scrub_if_idle(&mut self, quiet: Duration) -> Result<Option<CacheCleanup>>
fn scrub_if_idle(&mut self, quiet: Duration) -> Result<Option<CacheCleanup>>
Attempt a background scrub after this long without writes. Busy work is retried
at the same interval, rather than on every scheduler tick.
Source§fn scrub_delay(&self, quiet: Duration) -> Duration
fn scrub_delay(&self, quiet: Duration) -> Duration
Scheduler delay until the next quiet-period/retry deadline. When idle,
check at this interval to observe activity from other processes.
fn register_profile(&mut self, id: &str, profile: &CacheProfile) -> Result<()>
Source§fn resource_index(
&self,
profile: &str,
) -> Result<HashMap<ResourceId, CachedResourceState>>
fn resource_index( &self, profile: &str, ) -> Result<HashMap<ResourceId, CachedResourceState>>
Every cached resource for a profile, keyed by identity. Segments are not loaded.
fn resource( &self, profile: &str, path: &ResourceId, ) -> Result<Option<CachedResource>>
Source§fn put_resource(
&mut self,
profile: &str,
path: &ResourceId,
resource: &ResourceWrite<'_>,
) -> Result<()>
fn put_resource( &mut self, profile: &str, path: &ResourceId, resource: &ResourceWrite<'_>, ) -> Result<()>
Replace a resource and its segments.
Source§fn touch_resource(
&mut self,
profile: &str,
path: &ResourceId,
metadata: &ResourceMetadata,
version: &ResourceVersion,
) -> Result<()>
fn touch_resource( &mut self, profile: &str, path: &ResourceId, metadata: &ResourceMetadata, version: &ResourceVersion, ) -> Result<()>
Update metadata and version when content is unchanged.
fn remove_resources( &mut self, profile: &str, paths: &[ResourceId], ) -> Result<()>
Source§fn known_inputs(
&self,
profile: &str,
hashes: &[String],
) -> Result<HashSet<String>>
fn known_inputs( &self, profile: &str, hashes: &[String], ) -> Result<HashSet<String>>
Which of
hashes already have a vector.fn put_embeddings( &mut self, profile: &str, items: &[(String, Vec<f32>)], ) -> Result<()>
Source§fn supports_image_codes(&self) -> bool
fn supports_image_codes(&self) -> bool
Whether persistent Photo Anchor representations are supported.
Source§fn sync_image_codes(
&mut self,
profile: &str,
paths: &HashSet<ResourceId>,
) -> Result<()>
fn sync_image_codes( &mut self, profile: &str, paths: &HashSet<ResourceId>, ) -> Result<()>
Derive missing image codes from retained f32 during an opted-in sync.
Source§fn image_scan_rows(
&self,
profile: &str,
paths: &HashSet<ResourceId>,
) -> Result<Vec<ScanVector>>
fn image_scan_rows( &self, profile: &str, paths: &HashSet<ResourceId>, ) -> Result<Vec<ScanVector>>
Read representations without writing or loading f32 for coded images.
Source§fn selected_image_vectors(
&self,
profile: &str,
hashes: &HashSet<String>,
) -> Result<HashMap<String, Vec<f32>>>
fn selected_image_vectors( &self, profile: &str, hashes: &HashSet<String>, ) -> Result<HashMap<String, Vec<f32>>>
Fetch only selected f32 vectors, deduplicated by input hash.
Source§fn vectors_for(
&self,
profile: &str,
paths: &HashSet<ResourceId>,
) -> Result<Vec<StoredVector>>
fn vectors_for( &self, profile: &str, paths: &HashSet<ResourceId>, ) -> Result<Vec<StoredVector>>
All searchable vectors for the given paths.
Source§fn lexical_search(
&self,
profile: &str,
query: &LexicalQuery,
paths: &HashSet<ResourceId>,
limit: usize,
) -> Result<Vec<LexicalHit>>
fn lexical_search( &self, profile: &str, query: &LexicalQuery, paths: &HashSet<ResourceId>, limit: usize, ) -> Result<Vec<LexicalHit>>
Segments of
paths matching query by keyword, best first, at most limit.
Equal scores are ordered by path bytes, then segment ordinal.Source§fn lexical_matched_terms(
&self,
profile: &str,
query: &LexicalQuery,
keys: &[(ResourceId, usize)],
) -> Result<Vec<Vec<String>>>
fn lexical_matched_terms( &self, profile: &str, query: &LexicalQuery, keys: &[(ResourceId, usize)], ) -> Result<Vec<Vec<String>>>
Query tokens confirmed by the cached index for the requested segments.
Called only for final hits ranked by the keyword leg, after fusion and
eligibility checks. Return one term list per key, in the same order.
Never recover source text; report only complete matching query groups.
Source§fn prune_orphans(&mut self, profile: &str) -> Result<u64>
fn prune_orphans(&mut self, profile: &str) -> Result<u64>
Drop vectors no segment refers to any more.
fn stats(&self) -> Result<CacheStats>
fn clear(&mut self) -> Result<()>
Auto Trait Implementations§
impl !Freeze for SqliteCache
impl !RefUnwindSafe for SqliteCache
impl !Sync for SqliteCache
impl !UnwindSafe for SqliteCache
impl Send for SqliteCache
impl Unpin for SqliteCache
impl UnsafeUnpin for SqliteCache
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