pub struct Object<Meta: ObjectMetadata> {
pub interface: &'static str,
pub version: u32,
pub requests: &'static [MessageDesc],
pub events: &'static [MessageDesc],
pub meta: Meta,
pub childs_from_events: fn(_: u16, _: u32, _: &Meta) -> Option<Object<Meta>>,
pub childs_from_requests: fn(_: u16, _: u32, _: &Meta) -> Option<Object<Meta>>,
}
Expand description
The representation of a protocol object
Fields§
§interface: &'static str
Interface name of this object
version: u32
Version of this object
requests: &'static [MessageDesc]
Description of the requests of this object
events: &'static [MessageDesc]
Description of the events of this object
meta: Meta
Metadata associated to this object (ex: its event queue client side)
childs_from_events: fn(_: u16, _: u32, _: &Meta) -> Option<Object<Meta>>
A function which, from an opcode, a version, and the Meta, creates a child object associated with this event if any
childs_from_requests: fn(_: u16, _: u32, _: &Meta) -> Option<Object<Meta>>
A function which, from an opcode, a version, and the Meta, creates a child object associated with this request if any
Implementations§
Source§impl<Meta: ObjectMetadata> Object<Meta>
impl<Meta: ObjectMetadata> Object<Meta>
Sourcepub fn from_interface<I: Interface>(version: u32, meta: Meta) -> Object<Meta>
pub fn from_interface<I: Interface>(version: u32, meta: Meta) -> Object<Meta>
Create an Object corresponding to given interface and version
Sourcepub fn event_child(&self, opcode: u16) -> Option<Object<Meta>>
pub fn event_child(&self, opcode: u16) -> Option<Object<Meta>>
Create an optional Object
corresponding to the possible new_id
associated
with given event opcode
Sourcepub fn request_child(&self, opcode: u16) -> Option<Object<Meta>>
pub fn request_child(&self, opcode: u16) -> Option<Object<Meta>>
Create an optional Object
corresponding to the possible new_id
associated
with given request opcode
Sourcepub fn is_interface<I: Interface>(&self) -> bool
pub fn is_interface<I: Interface>(&self) -> bool
Check whether this object is of given interface
Sourcepub fn placeholder(meta: Meta) -> Object<Meta>
pub fn placeholder(meta: Meta) -> Object<Meta>
Create a placeholder object that will be filled-in by the message logic