Skip to main content

PublicMessageIn

Struct PublicMessageIn 

Source
pub struct PublicMessageIn { /* private fields */ }
Available on 32-bit or 64-bit only.
Expand description

PublicMessageIn is a framing structure for MLS messages. It can contain Proposals, Commits and application messages.

  1. Message framing
// draft-ietf-mls-protocol-17

struct {
    FramedContent content;
    FramedContentAuthData auth;
    optional<MAC> membership_tag;
} PublicMessage;

Implementations§

Source§

impl PublicMessageIn

Source

pub fn unverified_app_ephemeral_proposals( &self, component_id: ComponentId, ) -> Vec<&AppEphemeralProposal>

Available on crate feature extensions-draft only.

Returns the AppEphemeralProposals for component_id that this commit message carries by value, in the order they appear in the commit. Returns an empty vector if the message is not a commit.

This reads the deserialized message directly and requires no group state. A client that receives an external commit for a group it is not yet a member of can use it to inspect attached application data before deciding how to proceed with the join.

The returned data is unauthenticated. Neither the signature nor the sender of the message has been checked at this point, so callers must treat the data as untrusted until the commit has been verified against the group, for example by processing it and reading the proposals from the resulting StagedCommit.

Source§

impl PublicMessageIn

Source

pub fn content_type(&self) -> ContentType

Returns the ContentType of the message.

Source

pub fn sender(&self) -> &Sender

Get the sender of this message.

Source

pub fn epoch(&self) -> GroupEpoch

Get the group epoch.

Source

pub fn group_id(&self) -> &GroupId

Get the GroupId.

Source

pub fn confirmation_tag(&self) -> Option<&ConfirmationTag>

Get the ConfirmationTag.

Trait Implementations§

Source§

impl Clone for PublicMessageIn

Source§

fn clone(&self) -> PublicMessageIn

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PublicMessageIn

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Deserialize for PublicMessageIn

Source§

fn tls_deserialize<R: Read>(bytes: &mut R) -> Result<Self, Error>

Available on crate feature std only.
This function deserializes the bytes from the provided a std::io::Read and returns the populated struct. Read more
§

fn tls_deserialize_exact(bytes: impl AsRef<[u8]>) -> Result<Self, Error>
where Self: Sized,

Available on crate feature std only.
This function deserializes the provided bytes and returns the populated struct. All bytes must be consumed. Read more
Source§

impl<'de> Deserialize<'de> for PublicMessageIn

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl DeserializeBytes for PublicMessageIn

Source§

fn tls_deserialize_bytes(bytes: &[u8]) -> Result<(Self, &[u8]), Error>
where Self: Sized,

This function deserializes the bytes from the provided a &[u8] and returns the populated struct, as well as the remaining slice. Read more
§

fn tls_deserialize_exact_bytes(bytes: &[u8]) -> Result<Self, Error>
where Self: Sized,

This function deserializes the provided bytes and returns the populated struct. All bytes must be consumed. Read more
Source§

impl From<PublicMessage> for PublicMessageIn

Source§

fn from(v: PublicMessage) -> Self

Converts to this type from the input type.
Source§

impl From<PublicMessageIn> for ProtocolMessage

Source§

fn from(public_message: PublicMessageIn) -> Self

Converts to this type from the input type.
Source§

impl From<PublicMessageIn> for PublicMessage

Available on crate features test-utils only.
Source§

fn from(v: PublicMessageIn) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for PublicMessageIn

Source§

fn eq(&self, other: &PublicMessageIn) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for PublicMessageIn

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Serialize for PublicMessageIn

Source§

fn tls_serialize<W: Write>(&self, writer: &mut W) -> Result<usize, Error>

Available on crate feature std only.
Serialize self and write it to the writer. The function returns the number of bytes written to writer.
§

fn tls_serialize_detached(&self) -> Result<Vec<u8>, Error>

Available on crate feature std only.
Serialize self and return it as a byte vector.
Source§

impl Size for PublicMessageIn

Source§

impl StructuralPartialEq for PublicMessageIn

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V