Trait hex_buffer_serde::Hex

source ·
pub trait Hex<T> {
    type Error: Display;

    fn create_bytes(value: &T) -> Cow<'_, [u8]>;
    fn from_bytes(bytes: &[u8]) -> Result<T, Self::Error>;

    fn serialize<S: Serializer>(
        value: &T,
        serializer: S
    ) -> Result<S::Ok, S::Error> { ... } fn deserialize<'de, D>(deserializer: D) -> Result<T, D::Error>
    where
        D: Deserializer<'de>
, { ... } }
Available on crate feature alloc only.
Expand description

Provides hex-encoded (de)serialization for serde.

Note that the trait is automatically implemented for types that implement AsRef<[u8]> and TryFrom<&[u8]>.

Examples

See the crate-level docs for the examples of usage.

Required Associated Types

Error returned on unsuccessful deserialization.

Required Methods

Converts the value into bytes. This is used for serialization.

The returned buffer can be either borrowed from the type, or created by the method.

Creates a value from the byte slice.

Errors

If this method fails, it should return a human-readable error description conforming to serde conventions (no upper-casing of the first letter, no punctuation at the end).

Provided Methods

Serializes the value for serde. This method is not meant to be overridden.

The serialization is a lower-case hex string for human-readable serializers (e.g., JSON or TOML), and the original bytes returned by Self::create_bytes() for non-human-readable ones.

Deserializes a value using serde. This method is not meant to be overridden.

If the deserializer is human-readable (e.g., JSON or TOML), this method expects a hex-encoded string. Otherwise, the method expects a byte array.

Implementors