Trait ESExprCodec

Source
pub trait ESExprCodec<'a>:
    ESExprEncodedEq
    + Sized
    + 'a {
    const TAGS: ESExprTagSet;

    // Required methods
    fn encode_esexpr(&'a self) -> ESExpr<'a>;
    fn decode_esexpr(expr: ESExpr<'a>) -> Result<Self, DecodeError>;
}
Expand description

A codec that encodes and decodes ESExpr values.

Required Associated Constants§

Source

const TAGS: ESExprTagSet

The tags of the encoded expressions that this type can produce.

Required Methods§

Source

fn encode_esexpr(&'a self) -> ESExpr<'a>

Encode this value into an expression.

Source

fn decode_esexpr(expr: ESExpr<'a>) -> Result<Self, DecodeError>

Decode an expression into a value.

§Errors

Will return Err if decoding fails.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'a> ESExprCodec<'a> for Cow<'a, str>

Source§

impl<'a> ESExprCodec<'a> for bool

Source§

impl<'a> ESExprCodec<'a> for f32

Source§

impl<'a> ESExprCodec<'a> for f64

Source§

impl<'a> ESExprCodec<'a> for i8

Source§

impl<'a> ESExprCodec<'a> for i16

Source§

impl<'a> ESExprCodec<'a> for i32

Source§

impl<'a> ESExprCodec<'a> for i64

Source§

impl<'a> ESExprCodec<'a> for i128

Source§

impl<'a> ESExprCodec<'a> for isize

Source§

impl<'a> ESExprCodec<'a> for u8

Source§

impl<'a> ESExprCodec<'a> for u16

Source§

impl<'a> ESExprCodec<'a> for u32

Source§

impl<'a> ESExprCodec<'a> for u64

Source§

impl<'a> ESExprCodec<'a> for u128

Source§

impl<'a> ESExprCodec<'a> for ()

Source§

impl<'a> ESExprCodec<'a> for usize

Source§

impl<'a> ESExprCodec<'a> for String

Source§

impl<'a> ESExprCodec<'a> for f16

Source§

impl<'a> ESExprCodec<'a> for BigInt

Source§

impl<'a> ESExprCodec<'a> for BigUint

Source§

impl<'a, A: ESExprCodec<'a>> ESExprCodec<'a> for Option<A>

Source§

impl<'a, A: ESExprCodec<'a>> ESExprCodec<'a> for Box<A>

Source§

const TAGS: ESExprTagSet = A::TAGS

Source§

fn encode_esexpr(&'a self) -> ESExpr<'a>

Source§

fn decode_esexpr(expr: ESExpr<'a>) -> Result<Self, DecodeError>

Source§

impl<'a, A: ESExprCodec<'a>> ESExprCodec<'a> for BTreeMap<CowStr<'a>, A>

Source§

impl<'a, A: ESExprCodec<'a>> ESExprCodec<'a> for BTreeMap<Cow<'a, str>, A>

Source§

impl<'a, A: ESExprCodec<'a>> ESExprCodec<'a> for BTreeMap<String, A>

Source§

impl<'a, A: ESExprCodec<'a>> ESExprCodec<'a> for Vec<A>

Source§

impl<'a, A: ESExprCodec<'a>, S: BuildHasher + Default + 'static> ESExprCodec<'a> for HashMap<CowStr<'a>, A, S>

Source§

impl<'a, A: ESExprCodec<'a>, S: BuildHasher + Default + 'static> ESExprCodec<'a> for HashMap<Cow<'a, str>, A, S>

Source§

impl<'a, A: ESExprCodec<'a>, S: BuildHasher + Default + 'static> ESExprCodec<'a> for HashMap<String, A, S>

Implementors§

Source§

impl<'a> ESExprCodec<'a> for CowStr<'a>

Source§

impl<'a> ESExprCodec<'a> for ESExpr<'a>

Source§

const TAGS: ESExprTagSet = ESExprTagSet::All

Source§

impl<'a> ESExprCodec<'a> for ESExprStatic

Source§

const TAGS: ESExprTagSet = ESExprTagSet::All