EnvelopeVisitor

Trait EnvelopeVisitor 

Source
pub trait EnvelopeVisitor<'env> {
    type Error: Into<EnvelopeError>;

Show 24 methods // Provided methods fn visit_originator( &mut self, _e: &OriginatorEnvelope, ) -> Result<(), Self::Error> { ... } fn visit_unsigned_originator( &mut self, _e: &UnsignedOriginatorEnvelope, ) -> Result<(), Self::Error> { ... } fn visit_payer(&mut self, _e: &PayerEnvelope) -> Result<(), Self::Error> { ... } fn visit_client(&mut self, _e: &ClientEnvelope) -> Result<(), Self::Error> { ... } fn visit_group_message_version( &mut self, _m: &GroupMessageVersion, ) -> Result<(), Self::Error> { ... } fn visit_group_message_input( &mut self, _m: &GroupMessageInput, ) -> Result<(), Self::Error> { ... } fn visit_group_message_v1( &mut self, _m: &GroupMessageV1, ) -> Result<(), Self::Error> { ... } fn visit_welcome_message_version( &mut self, _m: &WelcomeMessageVersion, ) -> Result<(), Self::Error> { ... } fn visit_welcome_message_input( &mut self, _m: &WelcomeMessageInput, ) -> Result<(), Self::Error> { ... } fn visit_welcome_message_v1( &mut self, _m: &WelcomeMessageV1, ) -> Result<(), Self::Error> { ... } fn visit_welcome_pointer( &mut self, _m: &WelcomeMessageWelcomePointer, ) -> Result<(), Self::Error> { ... } fn visit_v3_group_message( &mut self, _m: &V3GroupMessage, ) -> Result<(), Self::Error> { ... } fn visit_v3_welcome_message( &mut self, _m: &V3WelcomeMessage, ) -> Result<(), Self::Error> { ... } fn visit_v3_welcome_pointer( &mut self, _m: &V3WelcomePointer, ) -> Result<(), Self::Error> { ... } fn visit_upload_key_package( &mut self, _p: &UploadKeyPackageRequest, ) -> Result<(), Self::Error> { ... } fn visit_identity_update( &mut self, _u: &IdentityUpdate, ) -> Result<(), Self::Error> { ... } fn visit_identity_update_log( &mut self, _u: &IdentityUpdateLog, ) -> Result<(), Self::Error> { ... } fn visit_identity_updates_request( &mut self, _u: &Request, ) -> Result<(), Self::Error> { ... } fn visit_key_package(&mut self, _k: &KeyPackage) -> Result<(), Self::Error> { ... } fn visit_none(&mut self) -> Result<(), Self::Error> { ... } fn visit_newest_envelope_response( &mut self, _u: &Response, ) -> Result<(), Self::Error> { ... } fn visit_subscribe_group_messages_request( &mut self, _r: &SubscribeGroupMessagesFilter, ) -> Result<(), Self::Error> { ... } fn visit_subscribe_welcome_messages_request( &mut self, _r: &SubscribeWelcomeMessagesFilter, ) -> Result<(), Self::Error> { ... } fn visit_newest_group_message_response( &mut self, _u: &Response, ) -> Result<(), Self::Error> { ... }
}
Expand description

Envelope Visitor type for handling of serialized nested envelope types.

Envelope visitors allow implementors to define data needed from a ProtocolEnvelope. It is designed such that like-kinded types may be extracted in the same module. For instance, V3 and D14n Group Messages. A visitor is given to a ProtocolEnvelope implementation via the ProtocolEnvelope::accept method. The implementation of ProtocolEnvelope defines how the protobuf data structure is traversed. it is the responsibility of ProtocolEnvelope to call all relevant visitor methods defined on this trait. if a visitor is not called, it must not be present in the given input data of a ProtocolEnvelope

The Envelope and EnvelopeCollection makes handling collections of ProtocolEnvelope and applying their extractors more convenient, as it provides a blanket implementation on all ProtocolEnvelope types.

The Aggregate Extractors, CollectionExtractor and SequencedExtractor applies an extractor to collections (Vec::) of ProtocolEnvelope’s.

§Examples

§Run a single visitor

// [`mls_v1::GroupMessage`] has a [`ProtocolEnvelope`] implementation.
fn get_group_message(response: mls_v1::GroupMessage) -> xmtp_proto::types::GroupMessage {
    // our Extractor which has an implementation of [`EnvelopeVisitor`]
    let mut visitor = V3GroupMessageExtractor::default();
    response.accept(&mut visitor);
    let msg = visitor.get().unwrap();
    msg.unwrap()
}

§Run multiple visitors

Running multiple visitors is useful when you want to extract multiple things from an envelope, or it’s uncertain whether the envelopes contains a certain type of message. Visitors chained as a tuple should always run through the protobuf message exactly once O(n).

NOTE: the blanket implementation of Envelope on all ProtocolEnvelope types removes much of the boilerplate here, and can have functions added if needed.

    let topic = TopicExtractor::default();
    let payload = PayloadExtractor::default();
    let mut visitor = (topic, payload);
    envelope.accept(&mut visitor);
    // unwrap the visitor from its tuple
    let (topic, payload) = visitor;
    let topic = topic.get().unwrap();
    let payload = payload.get().unwrap();

Required Associated Types§

Provided Methods§

Source

fn visit_originator( &mut self, _e: &OriginatorEnvelope, ) -> Result<(), Self::Error>

Visit the OriginatorEnvelope Type

Source

fn visit_unsigned_originator( &mut self, _e: &UnsignedOriginatorEnvelope, ) -> Result<(), Self::Error>

Visit the UnsignedOriginatorEnvelope type

Source

fn visit_payer(&mut self, _e: &PayerEnvelope) -> Result<(), Self::Error>

Visit the Payer Envelope Type

Source

fn visit_client(&mut self, _e: &ClientEnvelope) -> Result<(), Self::Error>

Visit the ClientEnvelope type

Source

fn visit_group_message_version( &mut self, _m: &GroupMessageVersion, ) -> Result<(), Self::Error>

Visit the GroupMessageVersion type

Source

fn visit_group_message_input( &mut self, _m: &GroupMessageInput, ) -> Result<(), Self::Error>

Visit the GroupMessageInput containing the welcome message version

Source

fn visit_group_message_v1( &mut self, _m: &GroupMessageV1, ) -> Result<(), Self::Error>

Visit a V1 Group Message

Source

fn visit_welcome_message_version( &mut self, _m: &WelcomeMessageVersion, ) -> Result<(), Self::Error>

Visit the WelcomeMessageInput containing the welcome message version

Source

fn visit_welcome_message_input( &mut self, _m: &WelcomeMessageInput, ) -> Result<(), Self::Error>

Visit the WelcomeMessageInput containing the welcome message version

Source

fn visit_welcome_message_v1( &mut self, _m: &WelcomeMessageV1, ) -> Result<(), Self::Error>

Visit a V1 Welcome Message

Source

fn visit_welcome_pointer( &mut self, _m: &WelcomeMessageWelcomePointer, ) -> Result<(), Self::Error>

Visit a Welcome Pointer

Source

fn visit_v3_group_message( &mut self, _m: &V3GroupMessage, ) -> Result<(), Self::Error>

Source

fn visit_v3_welcome_message( &mut self, _m: &V3WelcomeMessage, ) -> Result<(), Self::Error>

Source

fn visit_v3_welcome_pointer( &mut self, _m: &V3WelcomePointer, ) -> Result<(), Self::Error>

Source

fn visit_upload_key_package( &mut self, _p: &UploadKeyPackageRequest, ) -> Result<(), Self::Error>

Visit the Upload Key Package

Source

fn visit_identity_update( &mut self, _u: &IdentityUpdate, ) -> Result<(), Self::Error>

Visit the Identity Update Type

Source

fn visit_identity_update_log( &mut self, _u: &IdentityUpdateLog, ) -> Result<(), Self::Error>

Source

fn visit_identity_updates_request( &mut self, _u: &Request, ) -> Result<(), Self::Error>

Visit an Identity Updates Request

Source

fn visit_key_package(&mut self, _k: &KeyPackage) -> Result<(), Self::Error>

Source

fn visit_none(&mut self) -> Result<(), Self::Error>

Visit an empty type in a fixed-length array Useful is client expects a constant length between requests and responses

Source

fn visit_newest_envelope_response( &mut self, _u: &Response, ) -> Result<(), Self::Error>

Visit a Newest Envelope Response

Source

fn visit_subscribe_group_messages_request( &mut self, _r: &SubscribeGroupMessagesFilter, ) -> Result<(), Self::Error>

visit_subscribe_group_messages_request

Source

fn visit_subscribe_welcome_messages_request( &mut self, _r: &SubscribeWelcomeMessagesFilter, ) -> Result<(), Self::Error>

visit_subscribe_group_messages_request

Source

fn visit_newest_group_message_response( &mut self, _u: &Response, ) -> Result<(), Self::Error>

Implementations on Foreign Types§

Source§

impl<'a, T> EnvelopeVisitor<'a> for Vec<T>
where T: EnvelopeVisitor<'a>, T::Error: Error,

Source§

fn visit_identity_updates_request( &mut self, u: &Request, ) -> Result<(), Self::Error>

Visit an Identity Updates Request

Source§

fn visit_none(&mut self) -> Result<(), Self::Error>

Visit an empty type in a fixed-length array Useful is client expects a constant length between requests and responses

Source§

fn visit_newest_envelope_response( &mut self, u: &Response, ) -> Result<(), Self::Error>

Visit a Newest Envelope Response

Source§

fn visit_subscribe_group_messages_request( &mut self, r: &SubscribeGroupMessagesFilter, ) -> Result<(), Self::Error>

visit_subscribe_group_messages_request

Source§

fn visit_subscribe_welcome_messages_request( &mut self, r: &SubscribeWelcomeMessagesFilter, ) -> Result<(), Self::Error>

visit_subscribe_group_messages_request

Source§

type Error = <T as EnvelopeVisitor<'a>>::Error

Source§

fn visit_originator( &mut self, envelope: &OriginatorEnvelope, ) -> Result<(), Self::Error>

Source§

fn visit_unsigned_originator( &mut self, envelope: &UnsignedOriginatorEnvelope, ) -> Result<(), Self::Error>

Source§

fn visit_payer(&mut self, envelope: &PayerEnvelope) -> Result<(), Self::Error>

Source§

fn visit_client(&mut self, envelope: &ClientEnvelope) -> Result<(), Self::Error>

Source§

fn visit_group_message_version( &mut self, message: &GroupMessageVersion, ) -> Result<(), Self::Error>

Source§

fn visit_group_message_input( &mut self, m: &GroupMessageInput, ) -> Result<(), Self::Error>

Source§

fn visit_group_message_v1( &mut self, message: &GroupMessageV1, ) -> Result<(), Self::Error>

Source§

fn visit_welcome_message_version( &mut self, message: &WelcomeMessageVersion, ) -> Result<(), Self::Error>

Source§

fn visit_welcome_message_input( &mut self, m: &WelcomeMessageInput, ) -> Result<(), Self::Error>

Source§

fn visit_welcome_message_v1( &mut self, message: &WelcomeMessageV1, ) -> Result<(), Self::Error>

Source§

fn visit_v3_group_message( &mut self, m: &V3GroupMessage, ) -> Result<(), Self::Error>

Source§

fn visit_v3_welcome_message( &mut self, m: &V3WelcomeMessage, ) -> Result<(), Self::Error>

Source§

fn visit_upload_key_package( &mut self, package: &UploadKeyPackageRequest, ) -> Result<(), Self::Error>

Source§

fn visit_identity_update( &mut self, update: &IdentityUpdate, ) -> Result<(), Self::Error>

Source§

fn visit_identity_update_log( &mut self, u: &IdentityUpdateLog, ) -> Result<(), Self::Error>

Source§

fn visit_key_package(&mut self, k: &KeyPackage) -> Result<(), Self::Error>

Source§

impl<'a, TupleElement0: EnvelopeVisitor<'a>> EnvelopeVisitor<'a> for (TupleElement0,)
where EnvelopeError: From<<TupleElement0 as EnvelopeVisitor<'a>>::Error>,

Source§

fn visit_newest_envelope_response( &mut self, u: &Response, ) -> Result<(), Self::Error>

Visit a Newest Envelope Response

Source§

fn visit_subscribe_group_messages_request( &mut self, r: &SubscribeGroupMessagesFilter, ) -> Result<(), Self::Error>

visit_subscribe_group_messages_request

Source§

fn visit_subscribe_welcome_messages_request( &mut self, r: &SubscribeWelcomeMessagesFilter, ) -> Result<(), Self::Error>

visit_subscribe_group_messages_request

Source§

type Error = EnvelopeError

Source§

fn visit_originator( &mut self, envelope: &OriginatorEnvelope, ) -> Result<(), Self::Error>

Source§

fn visit_unsigned_originator( &mut self, e: &UnsignedOriginatorEnvelope, ) -> Result<(), Self::Error>

Source§

fn visit_payer(&mut self, e: &PayerEnvelope) -> Result<(), Self::Error>

Source§

fn visit_client(&mut self, e: &ClientEnvelope) -> Result<(), Self::Error>

Source§

fn visit_group_message_version( &mut self, m: &GroupMessageVersion, ) -> Result<(), Self::Error>

Source§

fn visit_group_message_input( &mut self, m: &GroupMessageInput, ) -> Result<(), Self::Error>

Source§

fn visit_group_message_v1( &mut self, m: &GroupMessageV1, ) -> Result<(), Self::Error>

Source§

fn visit_welcome_message_version( &mut self, m: &WelcomeMessageVersion, ) -> Result<(), Self::Error>

Source§

fn visit_welcome_message_input( &mut self, m: &WelcomeMessageInput, ) -> Result<(), Self::Error>

Source§

fn visit_welcome_message_v1( &mut self, m: &WelcomeMessageV1, ) -> Result<(), Self::Error>

Source§

fn visit_v3_group_message( &mut self, m: &V3GroupMessage, ) -> Result<(), Self::Error>

Source§

fn visit_v3_welcome_message( &mut self, m: &V3WelcomeMessage, ) -> Result<(), Self::Error>

Source§

fn visit_upload_key_package( &mut self, p: &UploadKeyPackageRequest, ) -> Result<(), Self::Error>

Source§

fn visit_identity_update( &mut self, u: &IdentityUpdate, ) -> Result<(), Self::Error>

Source§

fn visit_identity_update_log( &mut self, u: &IdentityUpdateLog, ) -> Result<(), Self::Error>

Source§

fn visit_identity_updates_request( &mut self, u: &Request, ) -> Result<(), Self::Error>

Source§

fn visit_key_package(&mut self, k: &KeyPackage) -> Result<(), Self::Error>

Source§

fn visit_none(&mut self) -> Result<(), Self::Error>

Source§

impl<'a, TupleElement0: EnvelopeVisitor<'a>, TupleElement1: EnvelopeVisitor<'a>> EnvelopeVisitor<'a> for (TupleElement0, TupleElement1)
where EnvelopeError: From<<TupleElement0 as EnvelopeVisitor<'a>>::Error> + From<<TupleElement1 as EnvelopeVisitor<'a>>::Error>,

Source§

fn visit_newest_envelope_response( &mut self, u: &Response, ) -> Result<(), Self::Error>

Visit a Newest Envelope Response

Source§

fn visit_subscribe_group_messages_request( &mut self, r: &SubscribeGroupMessagesFilter, ) -> Result<(), Self::Error>

visit_subscribe_group_messages_request

Source§

fn visit_subscribe_welcome_messages_request( &mut self, r: &SubscribeWelcomeMessagesFilter, ) -> Result<(), Self::Error>

visit_subscribe_group_messages_request

Source§

type Error = EnvelopeError

Source§

fn visit_originator( &mut self, envelope: &OriginatorEnvelope, ) -> Result<(), Self::Error>

Source§

fn visit_unsigned_originator( &mut self, e: &UnsignedOriginatorEnvelope, ) -> Result<(), Self::Error>

Source§

fn visit_payer(&mut self, e: &PayerEnvelope) -> Result<(), Self::Error>

Source§

fn visit_client(&mut self, e: &ClientEnvelope) -> Result<(), Self::Error>

Source§

fn visit_group_message_version( &mut self, m: &GroupMessageVersion, ) -> Result<(), Self::Error>

Source§

fn visit_group_message_input( &mut self, m: &GroupMessageInput, ) -> Result<(), Self::Error>

Source§

fn visit_group_message_v1( &mut self, m: &GroupMessageV1, ) -> Result<(), Self::Error>

Source§

fn visit_welcome_message_version( &mut self, m: &WelcomeMessageVersion, ) -> Result<(), Self::Error>

Source§

fn visit_welcome_message_input( &mut self, m: &WelcomeMessageInput, ) -> Result<(), Self::Error>

Source§

fn visit_welcome_message_v1( &mut self, m: &WelcomeMessageV1, ) -> Result<(), Self::Error>

Source§

fn visit_v3_group_message( &mut self, m: &V3GroupMessage, ) -> Result<(), Self::Error>

Source§

fn visit_v3_welcome_message( &mut self, m: &V3WelcomeMessage, ) -> Result<(), Self::Error>

Source§

fn visit_upload_key_package( &mut self, p: &UploadKeyPackageRequest, ) -> Result<(), Self::Error>

Source§

fn visit_identity_update( &mut self, u: &IdentityUpdate, ) -> Result<(), Self::Error>

Source§

fn visit_identity_update_log( &mut self, u: &IdentityUpdateLog, ) -> Result<(), Self::Error>

Source§

fn visit_identity_updates_request( &mut self, u: &Request, ) -> Result<(), Self::Error>

Source§

fn visit_key_package(&mut self, k: &KeyPackage) -> Result<(), Self::Error>

Source§

fn visit_none(&mut self) -> Result<(), Self::Error>

Source§

impl<'a, TupleElement0: EnvelopeVisitor<'a>, TupleElement1: EnvelopeVisitor<'a>, TupleElement2: EnvelopeVisitor<'a>> EnvelopeVisitor<'a> for (TupleElement0, TupleElement1, TupleElement2)
where EnvelopeError: From<<TupleElement0 as EnvelopeVisitor<'a>>::Error> + From<<TupleElement1 as EnvelopeVisitor<'a>>::Error> + From<<TupleElement2 as EnvelopeVisitor<'a>>::Error>,

Source§

fn visit_newest_envelope_response( &mut self, u: &Response, ) -> Result<(), Self::Error>

Visit a Newest Envelope Response

Source§

fn visit_subscribe_group_messages_request( &mut self, r: &SubscribeGroupMessagesFilter, ) -> Result<(), Self::Error>

visit_subscribe_group_messages_request

Source§

fn visit_subscribe_welcome_messages_request( &mut self, r: &SubscribeWelcomeMessagesFilter, ) -> Result<(), Self::Error>

visit_subscribe_group_messages_request

Source§

type Error = EnvelopeError

Source§

fn visit_originator( &mut self, envelope: &OriginatorEnvelope, ) -> Result<(), Self::Error>

Source§

fn visit_unsigned_originator( &mut self, e: &UnsignedOriginatorEnvelope, ) -> Result<(), Self::Error>

Source§

fn visit_payer(&mut self, e: &PayerEnvelope) -> Result<(), Self::Error>

Source§

fn visit_client(&mut self, e: &ClientEnvelope) -> Result<(), Self::Error>

Source§

fn visit_group_message_version( &mut self, m: &GroupMessageVersion, ) -> Result<(), Self::Error>

Source§

fn visit_group_message_input( &mut self, m: &GroupMessageInput, ) -> Result<(), Self::Error>

Source§

fn visit_group_message_v1( &mut self, m: &GroupMessageV1, ) -> Result<(), Self::Error>

Source§

fn visit_welcome_message_version( &mut self, m: &WelcomeMessageVersion, ) -> Result<(), Self::Error>

Source§

fn visit_welcome_message_input( &mut self, m: &WelcomeMessageInput, ) -> Result<(), Self::Error>

Source§

fn visit_welcome_message_v1( &mut self, m: &WelcomeMessageV1, ) -> Result<(), Self::Error>

Source§

fn visit_v3_group_message( &mut self, m: &V3GroupMessage, ) -> Result<(), Self::Error>

Source§

fn visit_v3_welcome_message( &mut self, m: &V3WelcomeMessage, ) -> Result<(), Self::Error>

Source§

fn visit_upload_key_package( &mut self, p: &UploadKeyPackageRequest, ) -> Result<(), Self::Error>

Source§

fn visit_identity_update( &mut self, u: &IdentityUpdate, ) -> Result<(), Self::Error>

Source§

fn visit_identity_update_log( &mut self, u: &IdentityUpdateLog, ) -> Result<(), Self::Error>

Source§

fn visit_identity_updates_request( &mut self, u: &Request, ) -> Result<(), Self::Error>

Source§

fn visit_key_package(&mut self, k: &KeyPackage) -> Result<(), Self::Error>

Source§

fn visit_none(&mut self) -> Result<(), Self::Error>

Source§

impl<'a, TupleElement0: EnvelopeVisitor<'a>, TupleElement1: EnvelopeVisitor<'a>, TupleElement2: EnvelopeVisitor<'a>, TupleElement3: EnvelopeVisitor<'a>> EnvelopeVisitor<'a> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3)
where EnvelopeError: From<<TupleElement0 as EnvelopeVisitor<'a>>::Error> + From<<TupleElement1 as EnvelopeVisitor<'a>>::Error> + From<<TupleElement2 as EnvelopeVisitor<'a>>::Error> + From<<TupleElement3 as EnvelopeVisitor<'a>>::Error>,

Source§

fn visit_newest_envelope_response( &mut self, u: &Response, ) -> Result<(), Self::Error>

Visit a Newest Envelope Response

Source§

fn visit_subscribe_group_messages_request( &mut self, r: &SubscribeGroupMessagesFilter, ) -> Result<(), Self::Error>

visit_subscribe_group_messages_request

Source§

fn visit_subscribe_welcome_messages_request( &mut self, r: &SubscribeWelcomeMessagesFilter, ) -> Result<(), Self::Error>

visit_subscribe_group_messages_request

Source§

type Error = EnvelopeError

Source§

fn visit_originator( &mut self, envelope: &OriginatorEnvelope, ) -> Result<(), Self::Error>

Source§

fn visit_unsigned_originator( &mut self, e: &UnsignedOriginatorEnvelope, ) -> Result<(), Self::Error>

Source§

fn visit_payer(&mut self, e: &PayerEnvelope) -> Result<(), Self::Error>

Source§

fn visit_client(&mut self, e: &ClientEnvelope) -> Result<(), Self::Error>

Source§

fn visit_group_message_version( &mut self, m: &GroupMessageVersion, ) -> Result<(), Self::Error>

Source§

fn visit_group_message_input( &mut self, m: &GroupMessageInput, ) -> Result<(), Self::Error>

Source§

fn visit_group_message_v1( &mut self, m: &GroupMessageV1, ) -> Result<(), Self::Error>

Source§

fn visit_welcome_message_version( &mut self, m: &WelcomeMessageVersion, ) -> Result<(), Self::Error>

Source§

fn visit_welcome_message_input( &mut self, m: &WelcomeMessageInput, ) -> Result<(), Self::Error>

Source§

fn visit_welcome_message_v1( &mut self, m: &WelcomeMessageV1, ) -> Result<(), Self::Error>

Source§

fn visit_v3_group_message( &mut self, m: &V3GroupMessage, ) -> Result<(), Self::Error>

Source§

fn visit_v3_welcome_message( &mut self, m: &V3WelcomeMessage, ) -> Result<(), Self::Error>

Source§

fn visit_upload_key_package( &mut self, p: &UploadKeyPackageRequest, ) -> Result<(), Self::Error>

Source§

fn visit_identity_update( &mut self, u: &IdentityUpdate, ) -> Result<(), Self::Error>

Source§

fn visit_identity_update_log( &mut self, u: &IdentityUpdateLog, ) -> Result<(), Self::Error>

Source§

fn visit_identity_updates_request( &mut self, u: &Request, ) -> Result<(), Self::Error>

Source§

fn visit_key_package(&mut self, k: &KeyPackage) -> Result<(), Self::Error>

Source§

fn visit_none(&mut self) -> Result<(), Self::Error>

Source§

impl<'a, TupleElement0: EnvelopeVisitor<'a>, TupleElement1: EnvelopeVisitor<'a>, TupleElement2: EnvelopeVisitor<'a>, TupleElement3: EnvelopeVisitor<'a>, TupleElement4: EnvelopeVisitor<'a>> EnvelopeVisitor<'a> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4)
where EnvelopeError: From<<TupleElement0 as EnvelopeVisitor<'a>>::Error> + From<<TupleElement1 as EnvelopeVisitor<'a>>::Error> + From<<TupleElement2 as EnvelopeVisitor<'a>>::Error> + From<<TupleElement3 as EnvelopeVisitor<'a>>::Error> + From<<TupleElement4 as EnvelopeVisitor<'a>>::Error>,

Source§

fn visit_newest_envelope_response( &mut self, u: &Response, ) -> Result<(), Self::Error>

Visit a Newest Envelope Response

Source§

fn visit_subscribe_group_messages_request( &mut self, r: &SubscribeGroupMessagesFilter, ) -> Result<(), Self::Error>

visit_subscribe_group_messages_request

Source§

fn visit_subscribe_welcome_messages_request( &mut self, r: &SubscribeWelcomeMessagesFilter, ) -> Result<(), Self::Error>

visit_subscribe_group_messages_request

Source§

type Error = EnvelopeError

Source§

fn visit_originator( &mut self, envelope: &OriginatorEnvelope, ) -> Result<(), Self::Error>

Source§

fn visit_unsigned_originator( &mut self, e: &UnsignedOriginatorEnvelope, ) -> Result<(), Self::Error>

Source§

fn visit_payer(&mut self, e: &PayerEnvelope) -> Result<(), Self::Error>

Source§

fn visit_client(&mut self, e: &ClientEnvelope) -> Result<(), Self::Error>

Source§

fn visit_group_message_version( &mut self, m: &GroupMessageVersion, ) -> Result<(), Self::Error>

Source§

fn visit_group_message_input( &mut self, m: &GroupMessageInput, ) -> Result<(), Self::Error>

Source§

fn visit_group_message_v1( &mut self, m: &GroupMessageV1, ) -> Result<(), Self::Error>

Source§

fn visit_welcome_message_version( &mut self, m: &WelcomeMessageVersion, ) -> Result<(), Self::Error>

Source§

fn visit_welcome_message_input( &mut self, m: &WelcomeMessageInput, ) -> Result<(), Self::Error>

Source§

fn visit_welcome_message_v1( &mut self, m: &WelcomeMessageV1, ) -> Result<(), Self::Error>

Source§

fn visit_v3_group_message( &mut self, m: &V3GroupMessage, ) -> Result<(), Self::Error>

Source§

fn visit_v3_welcome_message( &mut self, m: &V3WelcomeMessage, ) -> Result<(), Self::Error>

Source§

fn visit_upload_key_package( &mut self, p: &UploadKeyPackageRequest, ) -> Result<(), Self::Error>

Source§

fn visit_identity_update( &mut self, u: &IdentityUpdate, ) -> Result<(), Self::Error>

Source§

fn visit_identity_update_log( &mut self, u: &IdentityUpdateLog, ) -> Result<(), Self::Error>

Source§

fn visit_identity_updates_request( &mut self, u: &Request, ) -> Result<(), Self::Error>

Source§

fn visit_key_package(&mut self, k: &KeyPackage) -> Result<(), Self::Error>

Source§

fn visit_none(&mut self) -> Result<(), Self::Error>

Source§

impl<'a, TupleElement0: EnvelopeVisitor<'a>, TupleElement1: EnvelopeVisitor<'a>, TupleElement2: EnvelopeVisitor<'a>, TupleElement3: EnvelopeVisitor<'a>, TupleElement4: EnvelopeVisitor<'a>, TupleElement5: EnvelopeVisitor<'a>> EnvelopeVisitor<'a> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5)
where EnvelopeError: From<<TupleElement0 as EnvelopeVisitor<'a>>::Error> + From<<TupleElement1 as EnvelopeVisitor<'a>>::Error> + From<<TupleElement2 as EnvelopeVisitor<'a>>::Error> + From<<TupleElement3 as EnvelopeVisitor<'a>>::Error> + From<<TupleElement4 as EnvelopeVisitor<'a>>::Error> + From<<TupleElement5 as EnvelopeVisitor<'a>>::Error>,

Source§

fn visit_newest_envelope_response( &mut self, u: &Response, ) -> Result<(), Self::Error>

Visit a Newest Envelope Response

Source§

fn visit_subscribe_group_messages_request( &mut self, r: &SubscribeGroupMessagesFilter, ) -> Result<(), Self::Error>

visit_subscribe_group_messages_request

Source§

fn visit_subscribe_welcome_messages_request( &mut self, r: &SubscribeWelcomeMessagesFilter, ) -> Result<(), Self::Error>

visit_subscribe_group_messages_request

Source§

type Error = EnvelopeError

Source§

fn visit_originator( &mut self, envelope: &OriginatorEnvelope, ) -> Result<(), Self::Error>

Source§

fn visit_unsigned_originator( &mut self, e: &UnsignedOriginatorEnvelope, ) -> Result<(), Self::Error>

Source§

fn visit_payer(&mut self, e: &PayerEnvelope) -> Result<(), Self::Error>

Source§

fn visit_client(&mut self, e: &ClientEnvelope) -> Result<(), Self::Error>

Source§

fn visit_group_message_version( &mut self, m: &GroupMessageVersion, ) -> Result<(), Self::Error>

Source§

fn visit_group_message_input( &mut self, m: &GroupMessageInput, ) -> Result<(), Self::Error>

Source§

fn visit_group_message_v1( &mut self, m: &GroupMessageV1, ) -> Result<(), Self::Error>

Source§

fn visit_welcome_message_version( &mut self, m: &WelcomeMessageVersion, ) -> Result<(), Self::Error>

Source§

fn visit_welcome_message_input( &mut self, m: &WelcomeMessageInput, ) -> Result<(), Self::Error>

Source§

fn visit_welcome_message_v1( &mut self, m: &WelcomeMessageV1, ) -> Result<(), Self::Error>

Source§

fn visit_v3_group_message( &mut self, m: &V3GroupMessage, ) -> Result<(), Self::Error>

Source§

fn visit_v3_welcome_message( &mut self, m: &V3WelcomeMessage, ) -> Result<(), Self::Error>

Source§

fn visit_upload_key_package( &mut self, p: &UploadKeyPackageRequest, ) -> Result<(), Self::Error>

Source§

fn visit_identity_update( &mut self, u: &IdentityUpdate, ) -> Result<(), Self::Error>

Source§

fn visit_identity_update_log( &mut self, u: &IdentityUpdateLog, ) -> Result<(), Self::Error>

Source§

fn visit_identity_updates_request( &mut self, u: &Request, ) -> Result<(), Self::Error>

Source§

fn visit_key_package(&mut self, k: &KeyPackage) -> Result<(), Self::Error>

Source§

fn visit_none(&mut self) -> Result<(), Self::Error>

Implementors§