pub enum DenseReadiness {
Unavailable,
Embedding,
Ready,
}Expand description
0.8.20 Slice 20 (R-20-DR) — the ENGINE-SET readiness of the
searchable→vector projection, per
dev/design/record-lifecycle-protocol/projection-registry-and-async-embed.md
§3.
Exactly three members. filterable and searchable→FTS are
same-transaction (non-stale on commit) so they need no readiness axis at all;
searchable→vector is async, rebuild-durable, so it carries one.
Naming discipline (load-bearing). The token pending is RESERVED for
the admission axis (quarantine/trust — an app judgment). Index-readiness is
a DIFFERENT, orthogonal dimension (a record can be
active ∧ is_latest ∧ admissible yet dense_readiness = embedding), so this
enum deliberately does not reuse that word: the non-ready member is
Embedding, never Pending.
Variants§
Engine-selected state for a session with no usable dense runtime (an absent embedder or refused vector equivalence). Caller input remains accept-inert; reads select this through the shared runtime predicate.
Embedding
At least one row in the vector projection’s row set has not yet reached a
projection terminal — embedding is outstanding. This is the ONLY
tolerable torn state: readiness embedding with the vector absent (the
dense arm reads as partial and RRF under-ranks; it does not hide).
Ready
Every row in the vector projection’s row set has reached a projection
terminal — the dense arm is caught up. Because the vector INSERT and the
terminal record are written in ONE transaction
([commit_projection_outcomes]), Ready can never be observed with the
vector row absent (design §4.1 invariant 1).
Implementations§
Trait Implementations§
Source§impl Clone for DenseReadiness
impl Clone for DenseReadiness
Source§fn clone(&self) -> DenseReadiness
fn clone(&self) -> DenseReadiness
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more