pub struct BinaryEmbeddingSpace { /* private fields */ }Expand description
Metadata about a binary embedding space.
A binary embedding space stores bit-packed embeddings for Hamming distance and related binary metrics. This is useful for:
- Binary quantized embeddings (sign bits of float vectors)
- Binary hashing outputs (SimHash, MinHash)
- Specialized binary embedding models
§Example
use manifoldb_vector::types::{EmbeddingName, BinaryEmbeddingSpace};
use manifoldb_vector::distance::binary::BinaryDistanceMetric;
let name = EmbeddingName::new("binary_embedding").unwrap();
let space = BinaryEmbeddingSpace::new(name, 1024, BinaryDistanceMetric::Hamming);
assert_eq!(space.dimension(), 1024); // Number of bits
assert_eq!(space.distance_metric(), BinaryDistanceMetric::Hamming);Implementations§
Source§impl BinaryEmbeddingSpace
impl BinaryEmbeddingSpace
Sourcepub const fn new(
name: EmbeddingName,
dimension: usize,
distance_metric: BinaryDistanceMetric,
) -> Self
pub const fn new( name: EmbeddingName, dimension: usize, distance_metric: BinaryDistanceMetric, ) -> Self
Create a new binary embedding space.
Sourcepub fn name(&self) -> &EmbeddingName
pub fn name(&self) -> &EmbeddingName
Get the name of the embedding space.
Sourcepub fn dimension(&self) -> usize
pub fn dimension(&self) -> usize
Get the dimension (number of bits) of embeddings in this space.
Sourcepub fn distance_metric(&self) -> BinaryDistanceMetric
pub fn distance_metric(&self) -> BinaryDistanceMetric
Get the distance metric used for similarity search.
Sourcepub fn to_bytes(&self) -> Result<Vec<u8>, VectorError>
pub fn to_bytes(&self) -> Result<Vec<u8>, VectorError>
Encode the binary embedding space to bytes.
Format:
- 1 byte: version (4 for binary)
- 2 bytes: name length (big-endian u16)
- N bytes: name (UTF-8)
- 4 bytes: dimension (big-endian u32)
- 1 byte: distance metric
§Errors
Returns an error if the name length exceeds u16::MAX or the dimension exceeds u32::MAX.
Sourcepub fn from_bytes(bytes: &[u8]) -> Result<Self, VectorError>
pub fn from_bytes(bytes: &[u8]) -> Result<Self, VectorError>
Decode a binary embedding space from bytes.
§Errors
Returns an error if the bytes are invalid or truncated.
Trait Implementations§
Source§impl Clone for BinaryEmbeddingSpace
impl Clone for BinaryEmbeddingSpace
Source§fn clone(&self) -> BinaryEmbeddingSpace
fn clone(&self) -> BinaryEmbeddingSpace
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for BinaryEmbeddingSpace
impl Debug for BinaryEmbeddingSpace
Source§impl PartialEq for BinaryEmbeddingSpace
impl PartialEq for BinaryEmbeddingSpace
impl Eq for BinaryEmbeddingSpace
impl StructuralPartialEq for BinaryEmbeddingSpace
Auto Trait Implementations§
impl Freeze for BinaryEmbeddingSpace
impl RefUnwindSafe for BinaryEmbeddingSpace
impl Send for BinaryEmbeddingSpace
impl Sync for BinaryEmbeddingSpace
impl Unpin for BinaryEmbeddingSpace
impl UnwindSafe for BinaryEmbeddingSpace
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