pub trait EncodeAsFields {
    // Required method
    fn encode_as_fields_to(
        &self,
        fields: &mut dyn FieldIter<'_>,
        types: &PortableRegistry,
        out: &mut Vec<u8>
    ) -> Result<(), Error>;

    // Provided method
    fn encode_as_fields(
        &self,
        fields: &mut dyn FieldIter<'_>,
        types: &PortableRegistry
    ) -> Result<Vec<u8>, Error> { ... }
}
Expand description

This is similar to EncodeAsType, except that it can be implemented on types that can be encoded to bytes given a list of fields instead of a single type ID. This is generally implemented just for tuple and struct types, and is automatically implemented via the EncodeAsType macro.

Required Methods§

source

fn encode_as_fields_to( &self, fields: &mut dyn FieldIter<'_>, types: &PortableRegistry, out: &mut Vec<u8> ) -> Result<(), Error>

Given some fields describing the shape of a type, attempt to encode to that shape.

Provided Methods§

source

fn encode_as_fields( &self, fields: &mut dyn FieldIter<'_>, types: &PortableRegistry ) -> Result<Vec<u8>, Error>

This is a helper function which internally calls EncodeAsFields::encode_as_fields_to. Prefer to implement that instead.

Implementations on Foreign Types§

source§

impl<K: AsRef<str>, V: EncodeAsType> EncodeAsFields for BTreeMap<K, V>

source§

fn encode_as_fields_to( &self, fields: &mut dyn FieldIter<'_>, types: &PortableRegistry, out: &mut Vec<u8> ) -> Result<(), Error>

Implementors§

source§

impl<'a, Vals> EncodeAsFields for Composite<Vals>where Vals: ExactSizeIterator<Item = (Option<&'a str>, &'a dyn EncodeAsType)> + Clone,