Struct zbus::fdo::InterfacesAdded
source · pub struct InterfacesAdded(/* private fields */);
Expand description
A InterfacesAdded
signal.
Implementations§
source§impl InterfacesAdded
impl InterfacesAdded
sourcepub fn from_message<M>(msg: M) -> Option<Self>
pub fn from_message<M>(msg: M) -> Option<Self>
Try to construct a InterfacesAdded from a ::zbus::Message.
source§impl InterfacesAdded
impl InterfacesAdded
sourcepub fn args<'s>(&'s self) -> Result<InterfacesAddedArgs<'s>>
pub fn args<'s>(&'s self) -> Result<InterfacesAddedArgs<'s>>
Retrieve the signal arguments.
Methods from Deref<Target = Message>§
sourcepub fn take_fds(&self) -> Vec<OwnedFd>
pub fn take_fds(&self) -> Vec<OwnedFd>
Take ownership of the associated file descriptors in the message.
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, call this method that returns all the received FDs with their ownership.
This function is Unix-specific.
Note: the message will continue to reference the files, so you must keep them open for as long as the message itself.
sourcepub fn body_signature(&self) -> Result<Signature<'_>>
pub fn body_signature(&self) -> Result<Signature<'_>>
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) -> &MessagePrimaryHeader
sourcepub fn header(&self) -> Result<MessageHeader<'_>>
pub fn header(&self) -> Result<MessageHeader<'_>>
Deserialize the header.
Note: prefer using the direct access methods if possible; they are more efficient.
sourcepub fn fields(&self) -> Result<MessageFields<'_>>
pub fn fields(&self) -> Result<MessageFields<'_>>
Deserialize the fields.
Note: prefer using the direct access methods if possible; they are more efficient.
sourcepub fn message_type(&self) -> MessageType
pub fn message_type(&self) -> MessageType
The message type.
sourcepub fn path(&self) -> Option<ObjectPath<'_>>
pub fn path(&self) -> Option<ObjectPath<'_>>
The object to send a call to, or the object a signal is emitted from.
sourcepub fn interface(&self) -> Option<InterfaceName<'_>>
pub fn interface(&self) -> Option<InterfaceName<'_>>
The interface to invoke a method call on, or that a signal is emitted from.
sourcepub fn member(&self) -> Option<MemberName<'_>>
pub fn member(&self) -> Option<MemberName<'_>>
The member, either the method name or signal name.
sourcepub fn reply_serial(&self) -> Option<u32>
pub fn reply_serial(&self) -> Option<u32>
The serial number of the message this message is a reply to.
sourcepub fn body_unchecked<'d, 'm: 'd, B>(&'m self) -> Result<B>where
B: Deserialize<'d> + Type,
pub fn body_unchecked<'d, 'm: 'd, B>(&'m self) -> Result<B>where
B: Deserialize<'d> + Type,
Deserialize the body (without checking signature matching).
sourcepub fn body<'d, 'm: 'd, B>(&'m self) -> Result<B>where
B: DynamicDeserialize<'d>,
pub fn body<'d, 'm: 'd, B>(&'m self) -> Result<B>where
B: DynamicDeserialize<'d>,
Deserialize the body using the contained signature.
§Example
let send_body = (7i32, (2i32, "foo"), vec!["bar"]);
let message = Message::method(None::<&str>, Some("zbus.test"), "/", Some("zbus.test"), "ping", &send_body)?;
let body : zbus::zvariant::Structure = message.body()?;
let fields = body.fields();
assert!(matches!(fields[0], zvariant::Value::I32(7)));
assert!(matches!(fields[1], zvariant::Value::Structure(_)));
assert!(matches!(fields[2], zvariant::Value::Array(_)));
let reply_msg = Message::method_reply(None::<&str>, &message, &body)?;
let reply_value : (i32, (i32, &str), Vec<String>) = reply_msg.body()?;
assert_eq!(reply_value.0, 7);
assert_eq!(reply_value.2.len(), 1);
sourcepub fn body_as_bytes(&self) -> Result<&[u8]>
pub fn body_as_bytes(&self) -> Result<&[u8]>
Get a reference to the byte encoding of the body of the message.
sourcepub fn recv_position(&self) -> MessageSequence
pub fn recv_position(&self) -> MessageSequence
Get the receive ordering of a message.
This may be used to identify how two events were ordered on the bus. It only produces a
useful ordering for messages that were produced by the same zbus::Connection
.
This is completely unrelated to the serial number on the message, which is set by the peer and might not be ordered at all.
Trait Implementations§
source§impl AsRef<Message> for InterfacesAdded
impl AsRef<Message> for InterfacesAdded
source§impl Clone for InterfacesAdded
impl Clone for InterfacesAdded
source§fn clone(&self) -> InterfacesAdded
fn clone(&self) -> InterfacesAdded
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for InterfacesAdded
impl Debug for InterfacesAdded
Auto Trait Implementations§
impl Freeze for InterfacesAdded
impl RefUnwindSafe for InterfacesAdded
impl Send for InterfacesAdded
impl Sync for InterfacesAdded
impl Unpin for InterfacesAdded
impl UnwindSafe for InterfacesAdded
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)