Trait DomainType

Source
pub trait DomainType:
    Sized
    + Clone
    + TryFrom<Self::Proto>
where Self::Error: Into<Error> + Send + Sync + 'static,
{ type Proto: Message + Name + Default + From<Self> + Send + Sync + 'static; // Provided methods fn encode_to_vec(&self) -> Vec<u8> { ... } fn to_proto(&self) -> Self::Proto { ... } fn decode<B>(buf: B) -> Result<Self, Error> where B: Buf { ... } }
Expand description

A marker type that captures the relationships between a domain type (Self) and a protobuf type (Self::Proto).

Required Associated Types§

Source

type Proto: Message + Name + Default + From<Self> + Send + Sync + 'static

Provided Methods§

Source

fn encode_to_vec(&self) -> Vec<u8>

Encode this domain type to a byte vector, via proto type P.

Source

fn to_proto(&self) -> Self::Proto

Convert this domain type to the associated proto type.

This uses the From impl internally, so it works exactly like .into(), but does not require type inference.

Source

fn decode<B>(buf: B) -> Result<Self, Error>
where B: Buf,

Decode this domain type from a byte buffer, via proto type P.

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.

Implementors§

Source§

impl DomainType for MsgAcknowledgement

Source§

impl DomainType for MsgChannelCloseConfirm

Source§

impl DomainType for MsgChannelCloseInit

Source§

impl DomainType for MsgChannelOpenAck

Source§

impl DomainType for MsgChannelOpenConfirm

Source§

impl DomainType for MsgChannelOpenInit

Source§

impl DomainType for MsgChannelOpenTry

Source§

impl DomainType for MsgRecvPacket

Source§

impl DomainType for MsgTimeout

Source§

impl DomainType for MsgTimeoutOnClose

Source§

impl DomainType for MsgCreateClient

Source§

impl DomainType for MsgSubmitMisbehaviour

Source§

impl DomainType for MsgUpdateClient

Source§

impl DomainType for MsgUpgradeClient

Source§

impl DomainType for MerklePath

Source§

impl DomainType for MerklePrefix

Source§

impl DomainType for MerkleProof

Source§

impl DomainType for MerkleRoot

Source§

impl DomainType for MsgConnectionOpenAck

Source§

impl DomainType for MsgConnectionOpenConfirm

Source§

impl DomainType for MsgConnectionOpenInit

Source§

impl DomainType for MsgConnectionOpenTry

Source§

impl DomainType for ClientPaths

Source§

impl DomainType for IdentifiedConnectionEnd

Source§

impl DomainType for ClientState

Source§

impl DomainType for ConsensusState