pub enum VectorId {
U64(u64),
Bytes(Box<[u8]>),
}Expand description
A stable identifier for a stored vector.
Either a compact U64 integer id or an opaque
Bytes key. Build a U64 id with
From<u64>; build a Bytes id with
TryFrom<Vec<u8>>, which rejects an empty key.
§Examples
use iqdb_types::VectorId;
let numeric = VectorId::from(7u64);
assert_eq!(numeric, VectorId::U64(7));
let key = VectorId::try_from(vec![0xde, 0xad]).expect("non-empty key");
assert_eq!(key, VectorId::Bytes(vec![0xde, 0xad].into_boxed_slice()));
// An empty byte key is rejected.
assert!(VectorId::try_from(Vec::new()).is_err());Variants§
U64(u64)
A compact 64-bit integer id (for example, a row id).
Bytes(Box<[u8]>)
An opaque, non-empty byte key (for example, a content hash or a UUID’s raw bytes).
Trait Implementations§
Source§impl<'de> Deserialize<'de> for VectorId
impl<'de> Deserialize<'de> for VectorId
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for VectorId
Operator-facing rendering: U64 is the decimal integer; Bytes is
lowercase hex with no prefix and no separators (so a 32-byte
SHA-256-shaped id renders as 64 hex characters). Debug keeps the
Bytes([...]) shape for in-source troubleshooting; Display is the
shape that lands in operator-facing logs and error messages.
impl Display for VectorId
Operator-facing rendering: U64 is the decimal integer; Bytes is
lowercase hex with no prefix and no separators (so a 32-byte
SHA-256-shaped id renders as 64 hex characters). Debug keeps the
Bytes([...]) shape for in-source troubleshooting; Display is the
shape that lands in operator-facing logs and error messages.
§Examples
use iqdb_types::VectorId;
assert_eq!(VectorId::from(7u64).to_string(), "7");
let key = VectorId::try_from(vec![0xde, 0xad, 0xbe, 0xef]).expect("non-empty");
assert_eq!(key.to_string(), "deadbeef");impl Eq for VectorId
impl StructuralPartialEq for VectorId
Auto Trait Implementations§
impl Freeze for VectorId
impl RefUnwindSafe for VectorId
impl Send for VectorId
impl Sync for VectorId
impl Unpin for VectorId
impl UnsafeUnpin for VectorId
impl UnwindSafe for VectorId
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