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<VectorId, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<VectorId, <__D as Deserializer<'de>>::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
Source§impl Serialize for VectorId
impl Serialize for VectorId
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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>
Converts
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>
Converts
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 more