pub struct VectorDataValue { /* private fields */ }Expand description
VectorData value storing the external ID, embedding vector, and metadata.
The key for this record is VectorDataKey { vector_id }, where vector_id
is the internal u64 ID (not the user-provided external ID).
§Value Layout (little-endian)
┌────────────────────────────────────────────────────────────────┐
│ external_id: Utf8 (max 64 bytes, user-provided identifier) │
│ fields: Array<Field> │
│ │
│ Field │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ field_name: Utf8 │ │
│ │ value: FieldValue (tagged union) │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ The vector is stored as a special field with name "vector" │
│ and type FieldValue::Vector. │
└────────────────────────────────────────────────────────────────┘§Field Ordering
Fields are automatically sorted by field_name during construction to ensure
consistent encoding.
§Common Dimensionalities
| Model | Dimensions | Vector Size |
|---|---|---|
| MiniLM-L6 | 384 | 1.5 KB |
| BERT base | 768 | 3 KB |
| OpenAI ada-002 | 1536 | 6 KB |
| OpenAI text-3-large | 3072 | 12 KB |
Implementations§
Source§impl VectorDataValue
impl VectorDataValue
Sourcepub fn new(external_id: impl Into<String>, fields: Vec<Field>) -> Self
pub fn new(external_id: impl Into<String>, fields: Vec<Field>) -> Self
Create a new VectorDataValue with external ID and fields.
The caller should include a field with name VECTOR_FIELD_NAME (“vector”)
containing a FieldValue::Vector. Fields are sorted by name for consistent encoding.
Sourcepub fn encode_to_bytes(&self) -> Bytes
pub fn encode_to_bytes(&self) -> Bytes
Encode to bytes.
Sourcepub fn decode_from_bytes(
buf: &[u8],
dimensions: usize,
) -> Result<Self, EncodingError>
pub fn decode_from_bytes( buf: &[u8], dimensions: usize, ) -> Result<Self, EncodingError>
Decode vector data from bytes.
Requires dimensions to properly decode the vector field.
Sourcepub fn external_id(&self) -> &str
pub fn external_id(&self) -> &str
Returns the external ID.
Sourcepub fn fields(&self) -> impl Iterator<Item = &Field>
pub fn fields(&self) -> impl Iterator<Item = &Field>
Returns an iterator over metadata fields (excludes the vector field).
Sourcepub fn field(&self, name: &str) -> Option<&FieldValue>
pub fn field(&self, name: &str) -> Option<&FieldValue>
Get a metadata field by name.
Sourcepub fn string_field(&self, name: &str) -> Option<&str>
pub fn string_field(&self, name: &str) -> Option<&str>
Get a string field value.
Sourcepub fn int64_field(&self, name: &str) -> Option<i64>
pub fn int64_field(&self, name: &str) -> Option<i64>
Get an i64 field value.
Sourcepub fn float64_field(&self, name: &str) -> Option<f64>
pub fn float64_field(&self, name: &str) -> Option<f64>
Get an f64 field value.
Sourcepub fn bool_field(&self, name: &str) -> Option<bool>
pub fn bool_field(&self, name: &str) -> Option<bool>
Get a bool field value.
Sourcepub fn vector_field(&self) -> &[f32]
pub fn vector_field(&self) -> &[f32]
Get vector field value
Trait Implementations§
Source§impl Clone for VectorDataValue
impl Clone for VectorDataValue
Source§fn clone(&self) -> VectorDataValue
fn clone(&self) -> VectorDataValue
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for VectorDataValue
impl Debug for VectorDataValue
Source§impl PartialEq for VectorDataValue
impl PartialEq for VectorDataValue
impl StructuralPartialEq for VectorDataValue
Auto Trait Implementations§
impl Freeze for VectorDataValue
impl RefUnwindSafe for VectorDataValue
impl Send for VectorDataValue
impl Sync for VectorDataValue
impl Unpin for VectorDataValue
impl UnsafeUnpin for VectorDataValue
impl UnwindSafe for VectorDataValue
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<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);