precompile_utils::solidity::codec

Trait Codec

Source
pub trait Codec: Sized {
    // Required methods
    fn read(reader: &mut Reader<'_>) -> MayRevert<Self>;
    fn write(writer: &mut Writer, value: Self);
    fn has_static_size() -> bool;
    fn signature() -> String;

    // Provided method
    fn is_explicit_tuple() -> bool { ... }
}
Expand description

Data that can be encoded/encoded following the Solidity ABI Specification.

Required Methods§

Source

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source

fn write(writer: &mut Writer, value: Self)

Source

fn has_static_size() -> bool

Source

fn signature() -> String

Provided Methods§

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 Codec for bool

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn has_static_size() -> bool

Source§

fn signature() -> String

Source§

impl Codec for u8

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn has_static_size() -> bool

Source§

fn signature() -> String

Source§

impl Codec for u16

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn has_static_size() -> bool

Source§

fn signature() -> String

Source§

impl Codec for u32

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn has_static_size() -> bool

Source§

fn signature() -> String

Source§

impl Codec for u64

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn has_static_size() -> bool

Source§

fn signature() -> String

Source§

impl Codec for u128

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn has_static_size() -> bool

Source§

fn signature() -> String

Source§

impl Codec for ()

Source§

fn read(_reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(_writer: &mut Writer, _value: Self)

Source§

fn has_static_size() -> bool

Source§

fn signature() -> String

Source§

impl Codec for H256

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn has_static_size() -> bool

Source§

fn signature() -> String

Source§

impl Codec for U256

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn has_static_size() -> bool

Source§

fn signature() -> String

Source§

impl<T: Codec> Codec for Vec<T>

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn has_static_size() -> bool

Source§

fn signature() -> String

Source§

impl<TupleElement0: Codec> Codec for (TupleElement0,)

Source§

fn has_static_size() -> bool

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn signature() -> String

Source§

fn is_explicit_tuple() -> bool

Source§

impl<TupleElement0: Codec, TupleElement1: Codec> Codec for (TupleElement0, TupleElement1)

Source§

fn has_static_size() -> bool

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn signature() -> String

Source§

fn is_explicit_tuple() -> bool

Source§

impl<TupleElement0: Codec, TupleElement1: Codec, TupleElement2: Codec> Codec for (TupleElement0, TupleElement1, TupleElement2)

Source§

fn has_static_size() -> bool

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn signature() -> String

Source§

fn is_explicit_tuple() -> bool

Source§

impl<TupleElement0: Codec, TupleElement1: Codec, TupleElement2: Codec, TupleElement3: Codec> Codec for (TupleElement0, TupleElement1, TupleElement2, TupleElement3)

Source§

fn has_static_size() -> bool

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn signature() -> String

Source§

fn is_explicit_tuple() -> bool

Source§

impl<TupleElement0: Codec, TupleElement1: Codec, TupleElement2: Codec, TupleElement3: Codec, TupleElement4: Codec> Codec for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4)

Source§

fn has_static_size() -> bool

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn signature() -> String

Source§

fn is_explicit_tuple() -> bool

Source§

impl<TupleElement0: Codec, TupleElement1: Codec, TupleElement2: Codec, TupleElement3: Codec, TupleElement4: Codec, TupleElement5: Codec> Codec for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5)

Source§

fn has_static_size() -> bool

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn signature() -> String

Source§

fn is_explicit_tuple() -> bool

Source§

impl<TupleElement0: Codec, TupleElement1: Codec, TupleElement2: Codec, TupleElement3: Codec, TupleElement4: Codec, TupleElement5: Codec, TupleElement6: Codec> Codec for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6)

Source§

fn has_static_size() -> bool

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn signature() -> String

Source§

fn is_explicit_tuple() -> bool

Source§

impl<TupleElement0: Codec, TupleElement1: Codec, TupleElement2: Codec, TupleElement3: Codec, TupleElement4: Codec, TupleElement5: Codec, TupleElement6: Codec, TupleElement7: Codec> Codec for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7)

Source§

fn has_static_size() -> bool

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn signature() -> String

Source§

fn is_explicit_tuple() -> bool

Source§

impl<TupleElement0: Codec, TupleElement1: Codec, TupleElement2: Codec, TupleElement3: Codec, TupleElement4: Codec, TupleElement5: Codec, TupleElement6: Codec, TupleElement7: Codec, TupleElement8: Codec> Codec for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8)

Source§

fn has_static_size() -> bool

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn signature() -> String

Source§

fn is_explicit_tuple() -> bool

Source§

impl<TupleElement0: Codec, TupleElement1: Codec, TupleElement2: Codec, TupleElement3: Codec, TupleElement4: Codec, TupleElement5: Codec, TupleElement6: Codec, TupleElement7: Codec, TupleElement8: Codec, TupleElement9: Codec> Codec for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9)

Source§

fn has_static_size() -> bool

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn signature() -> String

Source§

fn is_explicit_tuple() -> bool

Source§

impl<TupleElement0: Codec, TupleElement1: Codec, TupleElement2: Codec, TupleElement3: Codec, TupleElement4: Codec, TupleElement5: Codec, TupleElement6: Codec, TupleElement7: Codec, TupleElement8: Codec, TupleElement9: Codec, TupleElement10: Codec> Codec for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10)

Source§

fn has_static_size() -> bool

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn signature() -> String

Source§

fn is_explicit_tuple() -> bool

Source§

impl<TupleElement0: Codec, TupleElement1: Codec, TupleElement2: Codec, TupleElement3: Codec, TupleElement4: Codec, TupleElement5: Codec, TupleElement6: Codec, TupleElement7: Codec, TupleElement8: Codec, TupleElement9: Codec, TupleElement10: Codec, TupleElement11: Codec> Codec for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11)

Source§

fn has_static_size() -> bool

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn signature() -> String

Source§

fn is_explicit_tuple() -> bool

Source§

impl<TupleElement0: Codec, TupleElement1: Codec, TupleElement2: Codec, TupleElement3: Codec, TupleElement4: Codec, TupleElement5: Codec, TupleElement6: Codec, TupleElement7: Codec, TupleElement8: Codec, TupleElement9: Codec, TupleElement10: Codec, TupleElement11: Codec, TupleElement12: Codec> Codec for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12)

Source§

fn has_static_size() -> bool

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn signature() -> String

Source§

fn is_explicit_tuple() -> bool

Source§

impl<TupleElement0: Codec, TupleElement1: Codec, TupleElement2: Codec, TupleElement3: Codec, TupleElement4: Codec, TupleElement5: Codec, TupleElement6: Codec, TupleElement7: Codec, TupleElement8: Codec, TupleElement9: Codec, TupleElement10: Codec, TupleElement11: Codec, TupleElement12: Codec, TupleElement13: Codec> Codec for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13)

Source§

fn has_static_size() -> bool

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn signature() -> String

Source§

fn is_explicit_tuple() -> bool

Source§

impl<TupleElement0: Codec, TupleElement1: Codec, TupleElement2: Codec, TupleElement3: Codec, TupleElement4: Codec, TupleElement5: Codec, TupleElement6: Codec, TupleElement7: Codec, TupleElement8: Codec, TupleElement9: Codec, TupleElement10: Codec, TupleElement11: Codec, TupleElement12: Codec, TupleElement13: Codec, TupleElement14: Codec> Codec for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14)

Source§

fn has_static_size() -> bool

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn signature() -> String

Source§

fn is_explicit_tuple() -> bool

Source§

impl<TupleElement0: Codec, TupleElement1: Codec, TupleElement2: Codec, TupleElement3: Codec, TupleElement4: Codec, TupleElement5: Codec, TupleElement6: Codec, TupleElement7: Codec, TupleElement8: Codec, TupleElement9: Codec, TupleElement10: Codec, TupleElement11: Codec, TupleElement12: Codec, TupleElement13: Codec, TupleElement14: Codec, TupleElement15: Codec> Codec for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15)

Source§

fn has_static_size() -> bool

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn signature() -> String

Source§

fn is_explicit_tuple() -> bool

Source§

impl<TupleElement0: Codec, TupleElement1: Codec, TupleElement2: Codec, TupleElement3: Codec, TupleElement4: Codec, TupleElement5: Codec, TupleElement6: Codec, TupleElement7: Codec, TupleElement8: Codec, TupleElement9: Codec, TupleElement10: Codec, TupleElement11: Codec, TupleElement12: Codec, TupleElement13: Codec, TupleElement14: Codec, TupleElement15: Codec, TupleElement16: Codec> Codec for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16)

Source§

fn has_static_size() -> bool

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn signature() -> String

Source§

fn is_explicit_tuple() -> bool

Source§

impl<TupleElement0: Codec, TupleElement1: Codec, TupleElement2: Codec, TupleElement3: Codec, TupleElement4: Codec, TupleElement5: Codec, TupleElement6: Codec, TupleElement7: Codec, TupleElement8: Codec, TupleElement9: Codec, TupleElement10: Codec, TupleElement11: Codec, TupleElement12: Codec, TupleElement13: Codec, TupleElement14: Codec, TupleElement15: Codec, TupleElement16: Codec, TupleElement17: Codec> Codec for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17)

Source§

fn has_static_size() -> bool

Source§

fn read(reader: &mut Reader<'_>) -> MayRevert<Self>

Source§

fn write(writer: &mut Writer, value: Self)

Source§

fn signature() -> String

Source§

fn is_explicit_tuple() -> bool

Implementors§

Source§

impl Codec for Address

Source§

impl<K: Kind, S: Get<u32>> Codec for BoundedBytesString<K, S>

Source§

impl<P, C> Codec for Convert<P, C>
where P: Codec + TryInto<C>, C: Codec + Into<P>,

Source§

impl<T: Codec, S: Get<u32>> Codec for BoundedVec<T, S>