pub enum Fingerprint {
Rabin(u64),
Id(u32),
Id64(u64),
MD5([u8; 16]),
SHA256([u8; 32]),
}展开描述
支持格式之一的模式指纹。
这用作 SchemaStore HashMap 内部的键。每个 SchemaStore 实例总是只存储一个变体,与其配置的 FingerprintAlgorithm 匹配,但枚举使 API 保持统一。
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
变体§
Rabin(u64)
一个 64 位 Rabin 指纹。
Id(u32)
一个 32 位 Schema Registry ID。
Id64(u64)
一个 64 位 Schema Registry ID。
MD5([u8; 16])
一个 128 位 MD5 指纹。
SHA256([u8; 32])
一个 256 位 SHA-256 指纹。
实现§
来源§impl Fingerprint
impl Fingerprint
源代码pub fn load_fingerprint_id(id: u32) -> Self
pub fn load_fingerprint_id(id: u32) -> Self
加载 32 位 Schema Registry 指纹(Confluent Schema Registry ID)。
提供的 id 是大端字节序;这会将其转换为主机字节序并返回 Fingerprint::Id。
§返回
包含 32 位指纹的 Fingerprint::Id 变体。
源代码pub fn load_fingerprint_id64(id: u64) -> Self
pub fn load_fingerprint_id64(id: u64) -> Self
加载 64 位 Schema Registry 指纹(Apicurio Schema Registry ID)。
提供的 id 是大端字节序;这会将其转换为主机字节序并返回 Fingerprint::Id64。
§返回
包含 64 位指纹的 Fingerprint::Id64 变体。
源代码pub(crate) fn make_prefix(&self) -> Prefix
pub(crate) fn make_prefix(&self) -> Prefix
根据枚举的变体构造表示为 Vec<u8> 的序列化前缀。
此方法根据 self 的变体以不同格式序列化数据
Id(id):使用 Confluent 线缆格式,其中包括预定义的魔术头 (CONFLUENT_MAGIC),后跟id的大端字节表示。Id64(id):使用 Apicurio 线缆格式,其中包括预定义的魔术头 (CONFLUENT_MAGIC),后跟id的大端 8 字节表示。Rabin(val):使用 Avro 单对象规范格式。这包括不同的魔术头 (SINGLE_OBJECT_MAGIC),后跟val的小端字节表示。MD5(bytes)(可选,启用md5功能):一个非标准扩展,添加SINGLE_OBJECT_MAGIC头,后跟提供的bytes。SHA256(bytes)(可选,启用sha256功能):类似于MD5变体,这是一个非标准扩展,附加SINGLE_OBJECT_MAGIC头,后跟给定的bytes。
§返回
包含序列化前缀数据的 Prefix。
§功能
- 您可以选择启用
md5功能以包含MD5变体。 - 您可以选择启用
sha256功能以包含SHA256变体。
Trait 实现§
来源§impl Clone for Fingerprint
impl Clone for Fingerprint
来源§fn clone(&self) -> Fingerprint
fn clone(&self) -> Fingerprint
1.0.0 · 源§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source 的复制赋值。 阅读更多来源§impl From<&Fingerprint> for FingerprintAlgorithm
允许轻松提取用于创建指纹的算法。
impl From<&Fingerprint> for FingerprintAlgorithm
允许轻松提取用于创建指纹的算法。
来源§fn from(fp: &Fingerprint) -> Self
fn from(fp: &Fingerprint) -> Self
来源§impl From<&Fingerprint> for FingerprintStrategy
impl From<&Fingerprint> for FingerprintStrategy
来源§fn from(f: &Fingerprint) -> Self
fn from(f: &Fingerprint) -> Self
来源§impl From<&FingerprintStrategy> for Fingerprint
impl From<&FingerprintStrategy> for Fingerprint
来源§fn from(s: &FingerprintStrategy) -> Self
fn from(s: &FingerprintStrategy) -> Self
来源§impl From<Fingerprint> for FingerprintStrategy
impl From<Fingerprint> for FingerprintStrategy
来源§fn from(f: Fingerprint) -> Self
fn from(f: Fingerprint) -> Self
来源§impl From<FingerprintAlgorithm> for Fingerprint
impl From<FingerprintAlgorithm> for Fingerprint
来源§fn from(s: FingerprintAlgorithm) -> Self
fn from(s: FingerprintAlgorithm) -> Self
来源§impl From<FingerprintStrategy> for Fingerprint
impl From<FingerprintStrategy> for Fingerprint
来源§fn from(s: FingerprintStrategy) -> Self
fn from(s: FingerprintStrategy) -> Self
来源§impl Hash for Fingerprint
impl Hash for Fingerprint
来源§impl PartialEq for Fingerprint
impl PartialEq for Fingerprint
impl Copy for Fingerprint
impl Eq for Fingerprint
impl StructuralPartialEq for Fingerprint
自动 Trait 实现§
impl Freeze for Fingerprint
impl RefUnwindSafe for Fingerprint
impl Send for Fingerprint
impl Sync for Fingerprint
impl Unpin for Fingerprint
impl UnwindSafe for Fingerprint
通用实现§
源§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
key 进行比较,如果它们相等则返回 true。