pub struct CollectionMetaValue {
pub schema_version: u32,
pub dimensions: u16,
pub distance_metric: DistanceMetric,
pub chunk_target: u16,
pub fields: Vec<MetadataFieldSpec>,
}Expand description
CollectionMeta value storing collection schema and configuration.
This is a singleton record (one per collection) that defines the structure all vectors must conform to. It is read on startup and cached in memory.
§Value Layout (little-endian)
┌────────────────────────────────────────────────────────────────┐
│ schema_version: u32 │
│ dimensions: u16 │
│ distance_metric: u8 (0=L2, 2=dot_product) │
│ chunk_target: u16 (centroids per chunk, default 4096) │
│ metadata_fields: Array<MetadataFieldSpec> │
│ │
│ MetadataFieldSpec │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ name: Utf8 │ │
│ │ field_type: u8 (0=string, 1=int64, 2=float64, 3=bool) │ │
│ │ indexed: u8 (0=false, 1=true) │ │
│ └──────────────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────────────┘Fields§
§schema_version: u32Monotonically increasing version for metadata schema changes.
Incremented when metadata fields are added or indexing is enabled. Does not change for vector insertions/deletions.
dimensions: u16Fixed dimensionality for all vectors (immutable after creation).
Common values: 384 (MiniLM), 768 (BERT), 1536 (OpenAI ada-002).
distance_metric: DistanceMetricDistance function for similarity computation (immutable after creation).
chunk_target: u16Target number of centroids per CentroidChunk (immutable after creation).
Default is 4096, which yields ~25 MB per chunk at 1536 dimensions.
fields: Vec<MetadataFieldSpec>Schema for fields attached to vectors.
Defines field names, types, and whether each field is indexed for filtering.
Implementations§
Source§impl CollectionMetaValue
impl CollectionMetaValue
pub fn new( dimensions: u16, distance_metric: DistanceMetric, chunk_target: u16, metadata_fields: Vec<MetadataFieldSpec>, ) -> Self
pub fn encode_to_bytes(&self) -> Bytes
pub fn decode_from_bytes(buf: &[u8]) -> Result<Self, EncodingError>
Sourcepub fn get_field(&self, name: &str) -> Option<&MetadataFieldSpec>
pub fn get_field(&self, name: &str) -> Option<&MetadataFieldSpec>
Find a metadata field spec by name.
Sourcepub fn indexed_fields(&self) -> impl Iterator<Item = &str>
pub fn indexed_fields(&self) -> impl Iterator<Item = &str>
Returns the names of all indexed fields.
Trait Implementations§
Source§impl Clone for CollectionMetaValue
impl Clone for CollectionMetaValue
Source§fn clone(&self) -> CollectionMetaValue
fn clone(&self) -> CollectionMetaValue
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CollectionMetaValue
impl Debug for CollectionMetaValue
Source§impl PartialEq for CollectionMetaValue
impl PartialEq for CollectionMetaValue
impl Eq for CollectionMetaValue
impl StructuralPartialEq for CollectionMetaValue
Auto Trait Implementations§
impl Freeze for CollectionMetaValue
impl RefUnwindSafe for CollectionMetaValue
impl Send for CollectionMetaValue
impl Sync for CollectionMetaValue
impl Unpin for CollectionMetaValue
impl UnsafeUnpin for CollectionMetaValue
impl UnwindSafe for CollectionMetaValue
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);