[][src]Struct zbus::Message

pub struct Message { /* fields omitted */ }

A D-Bus Message.

The content of the message are stored in serialized format. To deserialize the body of the message, use the body method. You may also access the header and other details with the various other getters.

Also provided are constructors for messages of different types. These will mainly be useful for very advanced use cases as typically you will want to create a message for immediate dispatch and hence use the API provided by Connection, even when using the low-level API.

Note: The message owns the received FDs and will close them when dropped. You can call disown_fds after deserializing to RawFD using body if you want to take the ownership.

Implementations

impl Message[src]

pub fn method<B>(
    sender: Option<&str>,
    destination: Option<&str>,
    path: &str,
    iface: Option<&str>,
    method_name: &str,
    body: &B
) -> Result<Self, MessageError> where
    B: Serialize + Type
[src]

Create a message of type MessageType::MethodCall.

pub fn signal<B>(
    sender: Option<&str>,
    destination: Option<&str>,
    path: &str,
    iface: &str,
    signal_name: &str,
    body: &B
) -> Result<Self, MessageError> where
    B: Serialize + Type
[src]

Create a message of type MessageType::Signal.

pub fn method_reply<B>(
    sender: Option<&str>,
    call: &Self,
    body: &B
) -> Result<Self, MessageError> where
    B: Serialize + Type
[src]

Create a message of type MessageType::MethodReturn.

pub fn method_error<B>(
    sender: Option<&str>,
    call: &Self,
    name: &str,
    body: &B
) -> Result<Self, MessageError> where
    B: Serialize + Type
[src]

Create a message of type MessageType::MethodError.

pub fn disown_fds(&mut self)[src]

Disown the associated file descriptors.

When a message is received over a AF_UNIX socket, it may contain associated FDs. To prevent the message from closing those FDs on drop, you may remove the ownership thanks to this method, after that you are responsible for closing them.

pub fn body_signature<'b, 's: 'b>(
    &'s self
) -> Result<Signature<'b>, MessageError>
[src]

The signature of the body.

Note: While zbus treats multiple arguments as a struct (to allow you to use the tuple syntax), D-Bus does not. Since this method gives you the signature expected on the wire by D-Bus, the trailing and leading STRUCT signature parenthesis will not be present in case of multiple arguments.

pub fn primary_header(&self) -> Result<MessagePrimaryHeader, MessageError>[src]

Deserialize the primary header.

pub fn header<'h, 'm: 'h>(&'m self) -> Result<MessageHeader<'h>, MessageError>[src]

Deserialize the header.

pub fn fields<'f, 'm: 'f>(&'m self) -> Result<MessageFields<'f>, MessageError>[src]

Deserialize the fields.

pub fn body_unchecked<'d, 'm: 'd, B>(&'m self) -> Result<B, MessageError> where
    B: Deserialize<'d> + Type
[src]

Deserialize the body (without checking signature matching).

pub fn body<'d, 'm: 'd, B>(&'m self) -> Result<B, MessageError> where
    B: Deserialize<'d> + Type
[src]

Check the signature and deserialize the body.

pub fn as_bytes(&self) -> &[u8]

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

Get a reference to the byte encoding of the message.

Trait Implementations

impl Debug for Message[src]

impl Display for Message[src]

impl From<Message> for Error[src]

impl Sink<Message> for Sink<'_>[src]

type Error = Error

The type of value produced by the sink when an error occurs.

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.