pub struct Endpoint<'a> {
pub id: u16,
pub device_types: &'a [DeviceType],
pub clusters: &'a [Cluster<'a>],
pub client_clusters: &'a [u32],
}Expand description
A type modeling the endpoint meta-data in the Matter data model.
Fields§
§id: u16The endpoint ID.
device_types: &'a [DeviceType]The list of device types associated with this endpoint.
clusters: &'a [Cluster<'a>]The list of server clusters present on this endpoint. These
are advertised via Descriptor::ServerList and dispatched by
the Handler chain on inbound IM messages.
client_clusters: &'a [u32]The list of client cluster IDs present on this endpoint —
i.e. clusters this endpoint initiates interactions for,
rather than serves. Advertised verbatim via
Descriptor::ClientList so commissioners know which Binding
targets are meaningful for this endpoint. Empty by default;
only meaningful on endpoints whose device type prescribes
client clusters (e.g. OnOffLightSwitch = 0x0103 lists
OnOff as a mandatory client). No Cluster<'a> value is
needed because a client cluster has no attribute/command
surface of its own — see Matter Core spec for the
Descriptor::ClientList semantics.
Implementations§
Source§impl<'a> Endpoint<'a>
impl<'a> Endpoint<'a>
Sourcepub const fn new(
id: u16,
device_types: &'a [DeviceType],
clusters: &'a [Cluster<'a>],
) -> Endpoint<'a>
pub const fn new( id: u16, device_types: &'a [DeviceType], clusters: &'a [Cluster<'a>], ) -> Endpoint<'a>
Create a new Endpoint instance with no client clusters.
Use Self::new_with_clients when this endpoint should
advertise client clusters via Descriptor::ClientList.
Sourcepub const fn new_with_clients(
id: u16,
device_types: &'a [DeviceType],
clusters: &'a [Cluster<'a>],
client_clusters: &'a [u32],
) -> Endpoint<'a>
pub const fn new_with_clients( id: u16, device_types: &'a [DeviceType], clusters: &'a [Cluster<'a>], client_clusters: &'a [u32], ) -> Endpoint<'a>
Create a new Endpoint instance that advertises the given
client cluster IDs in addition to its server clusters.
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for Endpoint<'a>
impl<'a> RefUnwindSafe for Endpoint<'a>
impl<'a> Send for Endpoint<'a>
impl<'a> Sync for Endpoint<'a>
impl<'a> Unpin for Endpoint<'a>
impl<'a> UnsafeUnpin for Endpoint<'a>
impl<'a> UnwindSafe for Endpoint<'a>
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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