Skip to main content

SerializeKey

Trait SerializeKey 

Source
pub trait SerializeKey: Sized {
    type Output<'a, B: Buffer + 'a>: Into<KeySerializerFinalized>;

    // Required methods
    fn serialize_key_to<'a, B: Buffer>(
        &self,
        serializer: KeySerializer<'a, B>,
    ) -> Self::Output<'a, B>;
    fn deserialize_key_from(
        deserializer: &mut KeyDeserializer<'_>,
    ) -> Result<Self, Error>;

    // Provided methods
    fn serialize_key_into<B: Buffer>(&self, buffer: &mut B) { ... }
    fn serialize_key_with_base_into<B: Buffer>(&self, buffer: &mut B, base: u64)
       where Self: SortByU64 { ... }
}
Expand description

Trait defining the translation logic from Fxfs types into order-consistent binaries.

Required Associated Types§

Source

type Output<'a, B: Buffer + 'a>: Into<KeySerializerFinalized>

The serializer state returned after writing this type (KeySerializer for non-terminal types, or KeySerializerFinalized for variable-length trailing types).

Required Methods§

Source

fn serialize_key_to<'a, B: Buffer>( &self, serializer: KeySerializer<'a, B>, ) -> Self::Output<'a, B>

Encodes key representation sequentially into serialization stream.

Source

fn deserialize_key_from( deserializer: &mut KeyDeserializer<'_>, ) -> Result<Self, Error>

Decodes serializations sequentially from underlying raw bytes.

Provided Methods§

Source

fn serialize_key_into<B: Buffer>(&self, buffer: &mut B)

Serializes this key directly into buffer with its length prefix and no delta base.

Matches the ergonomics of serde/bincode serialize_into.

Source

fn serialize_key_with_base_into<B: Buffer>(&self, buffer: &mut B, base: u64)
where Self: SortByU64,

Serializes this key directly into buffer with its length prefix and delta base subtracted from the leading u64.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl SerializeKey for CasefoldString

Source§

type Output<'a, B: Buffer + 'a> = KeySerializerFinalized

Source§

fn serialize_key_to<'a, B: Buffer>( &self, serializer: KeySerializer<'a, B>, ) -> Self::Output<'a, B>

Source§

fn deserialize_key_from( deserializer: &mut KeyDeserializer<'_>, ) -> Result<Self, Error>

Source§

impl SerializeKey for NonZeroU64

Source§

type Output<'a, B: Buffer + 'a> = KeySerializer<'a, B>

Source§

fn serialize_key_to<'a, B: Buffer>( &self, serializer: KeySerializer<'a, B>, ) -> Self::Output<'a, B>

Source§

fn deserialize_key_from( deserializer: &mut KeyDeserializer<'_>, ) -> Result<Self, Error>

Source§

impl SerializeKey for Range<u64>

Source§

type Output<'a, B: Buffer + 'a> = KeySerializer<'a, B>

Source§

fn serialize_key_to<'a, B: Buffer>( &self, serializer: KeySerializer<'a, B>, ) -> Self::Output<'a, B>

Source§

fn deserialize_key_from( deserializer: &mut KeyDeserializer<'_>, ) -> Result<Self, Error>

Source§

impl SerializeKey for String

Source§

type Output<'a, B: Buffer + 'a> = KeySerializerFinalized

Source§

fn serialize_key_to<'a, B: Buffer>( &self, serializer: KeySerializer<'a, B>, ) -> Self::Output<'a, B>

Source§

fn deserialize_key_from( deserializer: &mut KeyDeserializer<'_>, ) -> Result<Self, Error>

Source§

impl SerializeKey for Vec<u8>

Source§

type Output<'a, B: Buffer + 'a> = KeySerializerFinalized

Source§

fn serialize_key_to<'a, B: Buffer>( &self, serializer: KeySerializer<'a, B>, ) -> Self::Output<'a, B>

Source§

fn deserialize_key_from( deserializer: &mut KeyDeserializer<'_>, ) -> Result<Self, Error>

Source§

impl SerializeKey for u8

Source§

type Output<'a, B: Buffer + 'a> = KeySerializer<'a, B>

Source§

fn serialize_key_to<'a, B: Buffer>( &self, serializer: KeySerializer<'a, B>, ) -> Self::Output<'a, B>

Source§

fn deserialize_key_from( deserializer: &mut KeyDeserializer<'_>, ) -> Result<Self, Error>

Source§

impl SerializeKey for u32

Source§

type Output<'a, B: Buffer + 'a> = KeySerializer<'a, B>

Source§

fn serialize_key_to<'a, B: Buffer>( &self, serializer: KeySerializer<'a, B>, ) -> Self::Output<'a, B>

Source§

fn deserialize_key_from( deserializer: &mut KeyDeserializer<'_>, ) -> Result<Self, Error>

Source§

impl SerializeKey for u64

Source§

type Output<'a, B: Buffer + 'a> = KeySerializer<'a, B>

Source§

fn serialize_key_to<'a, B: Buffer>( &self, serializer: KeySerializer<'a, B>, ) -> Self::Output<'a, B>

Source§

fn deserialize_key_from( deserializer: &mut KeyDeserializer<'_>, ) -> Result<Self, Error>

Implementors§

Source§

impl SerializeKey for AllocatorKeyV32

Source§

type Output<'a, B: Buffer + 'a> = <Extent as SerializeKey>::Output<'a, B>

Source§

impl SerializeKey for AttributeId

Source§

type Output<'a, B: Buffer + 'a> = <u64 as SerializeKey>::Output<'a, B>

Source§

impl SerializeKey for AttributeKeyV32

Source§

impl SerializeKey for EncryptedCasefoldChild

Source§

type Output<'a, B: Buffer + 'a> = <Vec<u8> as SerializeKey>::Output<'a, B>

Source§

impl SerializeKey for EncryptedChild

Source§

type Output<'a, B: Buffer + 'a> = <Vec<u8> as SerializeKey>::Output<'a, B>

Source§

impl SerializeKey for Extent

Source§

type Output<'a, B: Buffer + 'a> = KeySerializer<'a, B>

Source§

impl SerializeKey for ObjectKeyDataV54

Source§

impl SerializeKey for ObjectKeyV54

Source§

type Output<'a, B: Buffer + 'a> = <ObjectKeyDataV54 as SerializeKey>::Output<'a, B>

Source§

impl SerializeKey for ProjectId

Source§

type Output<'a, B: Buffer + 'a> = <NonZero<u64> as SerializeKey>::Output<'a, B>

Source§

impl SerializeKey for ProjectPropertyV32

Source§

type Output<'a, B: Buffer + 'a> = KeySerializer<'a, B>