libp2p::gossipsub

Trait DataTransform

pub trait DataTransform {
    // Required methods
    fn inbound_transform(
        &self,
        raw_message: RawMessage,
    ) -> Result<Message, Error>;
    fn outbound_transform(
        &self,
        topic: &TopicHash,
        data: Vec<u8>,
    ) -> Result<Vec<u8>, Error>;
}
Available on crate feature gossipsub only.
Expand description

A general trait of transforming a RawMessage into a Message. The

RawMessage is obtained from the wire and the Message is used to calculate the crate::MessageId of the message and is what is sent to the application.

The inbound/outbound transforms must be inverses. Applying the inbound transform and then the outbound transform MUST leave the underlying data un-modified.

By default, this is the identity transform for all fields in Message.

Required Methods§

fn inbound_transform(&self, raw_message: RawMessage) -> Result<Message, Error>

Takes a RawMessage received and converts it to a Message.

fn outbound_transform( &self, topic: &TopicHash, data: Vec<u8>, ) -> Result<Vec<u8>, Error>

Takes the data to be published (a topic and associated data) transforms the data. The transformed data will then be used to create a crate::RawMessage to be sent to peers.

Implementors§