pub enum Fingerprint {
Rabin(u64),
Id(u32),
MD5([u8; 16]),
SHA256([u8; 32]),
}
Expand description
A schema fingerprint in one of the supported formats.
This is used as the key inside SchemaStore
HashMap
. Each SchemaStore
instance always stores only one variant, matching its configured
FingerprintAlgorithm
, but the enum makes the API uniform.
https://avro.apache.org/docs/1.11.1/specification/#schema-fingerprints https://docs.confluent.io/platform/current/schema-registry/fundamentals/serdes-develop/index.html#wire-format
Variants§
Rabin(u64)
A 64-bit Rabin fingerprint.
Id(u32)
A 32-bit Schema Registry ID.
MD5([u8; 16])
A 128-bit MD5 fingerprint.
SHA256([u8; 32])
A 256-bit SHA-256 fingerprint.
Implementations§
Source§impl Fingerprint
impl Fingerprint
Sourcepub fn load_fingerprint_id(id: u32) -> Self
pub fn load_fingerprint_id(id: u32) -> Self
Loads the 32-bit Schema Registry fingerprint (Confluent Schema Registry ID).
The provided id
is in big-endian wire order; this converts it to host order
and returns Fingerprint::Id
.
§Returns
A Fingerprint::Id
variant containing the 32-bit fingerprint.
Sourcepub fn make_prefix(&self) -> Prefix
pub fn make_prefix(&self) -> Prefix
Constructs a serialized prefix represented as a Vec<u8>
based on the variant of the enum.
This method serializes data in different formats depending on the variant of self
:
Id(id)
: Uses the Confluent wire format, which includes a predefined magic header (CONFLUENT_MAGIC
) followed by the big-endian byte representation of theid
.Rabin(val)
: Uses the Avro single-object specification format. This includes a different magic header (SINGLE_OBJECT_MAGIC
) followed by the little-endian byte representation of theval
.MD5(bytes)
(optional,md5
feature enabled): A non-standard extension that adds theSINGLE_OBJECT_MAGIC
header followed by the providedbytes
.SHA256(bytes)
(optional,sha256
feature enabled): Similar to theMD5
variant, this is a non-standard extension that attaches theSINGLE_OBJECT_MAGIC
header followed by the givenbytes
.
§Returns
A Prefix
containing the serialized prefix data.
§Features
- You can optionally enable the
md5
feature to include theMD5
variant. - You can optionally enable the
sha256
feature to include theSHA256
variant.
Trait Implementations§
Source§impl Clone for Fingerprint
impl Clone for Fingerprint
Source§fn clone(&self) -> Fingerprint
fn clone(&self) -> Fingerprint
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for Fingerprint
impl Debug for Fingerprint
Source§impl From<&Fingerprint> for FingerprintAlgorithm
Allow easy extraction of the algorithm used to create a fingerprint.
impl From<&Fingerprint> for FingerprintAlgorithm
Allow easy extraction of the algorithm used to create a fingerprint.
Source§fn from(fp: &Fingerprint) -> Self
fn from(fp: &Fingerprint) -> Self
Source§impl From<&Fingerprint> for FingerprintStrategy
impl From<&Fingerprint> for FingerprintStrategy
Source§fn from(f: &Fingerprint) -> Self
fn from(f: &Fingerprint) -> Self
Source§impl From<&FingerprintStrategy> for Fingerprint
impl From<&FingerprintStrategy> for Fingerprint
Source§fn from(s: &FingerprintStrategy) -> Self
fn from(s: &FingerprintStrategy) -> Self
Source§impl From<Fingerprint> for FingerprintStrategy
impl From<Fingerprint> for FingerprintStrategy
Source§fn from(f: Fingerprint) -> Self
fn from(f: Fingerprint) -> Self
Source§impl From<FingerprintAlgorithm> for Fingerprint
impl From<FingerprintAlgorithm> for Fingerprint
Source§fn from(s: FingerprintAlgorithm) -> Self
fn from(s: FingerprintAlgorithm) -> Self
Source§impl From<FingerprintStrategy> for Fingerprint
impl From<FingerprintStrategy> for Fingerprint
Source§fn from(s: FingerprintStrategy) -> Self
fn from(s: FingerprintStrategy) -> Self
Source§impl Hash for Fingerprint
impl Hash for Fingerprint
Source§impl PartialEq for Fingerprint
impl PartialEq for Fingerprint
impl Copy for Fingerprint
impl Eq for Fingerprint
impl StructuralPartialEq for Fingerprint
Auto Trait Implementations§
impl Freeze for Fingerprint
impl RefUnwindSafe for Fingerprint
impl Send for Fingerprint
impl Sync for Fingerprint
impl Unpin for Fingerprint
impl UnwindSafe for Fingerprint
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,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.