pub struct Message<D: MessageData = Vec<u8>> {
pub data: D,
pub address: Option<SocketAddress>,
pub credentials: Option<ucred>,
pub ancillary_data: Vec<AncillaryData>,
}Expand description
A Message represents a typed segment of bytes within a MessageQueue.
Fields§
§data: DThe data contained in the message.
address: Option<SocketAddress>The address from which the message was sent.
credentials: Option<ucred>The Unix credentials associated with the message.
ancillary_data: Vec<AncillaryData>The ancillary data that is associated with this message.
Implementations§
Source§impl<D: MessageData> Message<D>
impl<D: MessageData> Message<D>
Sourcepub fn new(
data: D,
address: Option<SocketAddress>,
credentials: Option<ucred>,
ancillary_data: Vec<AncillaryData>,
) -> Self
pub fn new( data: D, address: Option<SocketAddress>, credentials: Option<ucred>, ancillary_data: Vec<AncillaryData>, ) -> Self
Creates a a new message with the provided message and ancillary data.
Sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
Returns the length of the message in bytes.
Note that ancillary data does not contribute to the length of the message.
pub fn clone_at_most(&self, limit: usize) -> Self
Sourcepub fn truncate(&mut self, limit: usize)
pub fn truncate(&mut self, limit: usize)
Shortens the message data, keeping the first limit elements and dropping the rest.
If limit is greater or equal to the current data length, this has no effect.
Sourcepub fn split_off(&mut self, index: usize) -> Option<Self>
pub fn split_off(&mut self, index: usize) -> Option<Self>
Splits the message at index, returning the remaining message if index < self.len().
The message’s address and credentials metadata are preserved on the remaining message,
while one-shot ancillary data such as SCM_RIGHTS is only kept on self.
Trait Implementations§
Auto Trait Implementations§
impl<D = Vec<u8>> !RefUnwindSafe for Message<D>
impl<D = Vec<u8>> !UnwindSafe for Message<D>
impl<D> Freeze for Message<D>where
D: Freeze,
impl<D> Send for Message<D>where
D: Send,
impl<D> Sync for Message<D>where
D: Sync,
impl<D> Unpin for Message<D>where
D: Unpin,
impl<D> UnsafeUnpin for Message<D>where
D: UnsafeUnpin,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
Source§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
§impl<F, N> FidlIntoNative<Box<N>> for Fwhere
F: FidlIntoNative<N>,
impl<F, N> FidlIntoNative<Box<N>> for Fwhere
F: FidlIntoNative<N>,
fn fidl_into_native(self) -> Box<N>
§impl<T> InstanceFromServiceTransport<T> for T
impl<T> InstanceFromServiceTransport<T> for T
§fn from_service_transport(handle: T) -> T
fn from_service_transport(handle: T) -> T
T to [Self]Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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