pub struct Events<const N: usize = rs_matter::::im::events::Events::{constant#0}> { /* private fields */ }Expand description
Events queue.
It lets one publish Matter Events into a priority queue, and allows subscribers and remote clients to read the published events.
The queue is implemented as three equally sized ring buffers, the size of the buffers is set by N. Hence the memory use of the buffers will be 3 * N. If a very small N is picked, then clients that poll may miss events as they fall out of the queue; but a large N of course uses more memory.
If the app emits no events, this subsystem can be disabled by using the NoEvents type alias.
Implementations§
Source§impl<const N: usize> Events<N>
impl<const N: usize> Events<N>
pub const fn new() -> Events<N>
pub fn init() -> impl Init<Events<N>>
pub fn reset(&mut self)
Sourcepub fn push<S, F>(
&self,
endpoint_id: u16,
cluster_id: u32,
event_id: u32,
priority: EventPriority,
kv: S,
f: F,
) -> Result<u64, Error>
pub fn push<S, F>( &self, endpoint_id: u16, cluster_id: u32, event_id: u32, priority: EventPriority, kv: S, f: F, ) -> Result<u64, Error>
Push a new event into the event queue.
§Arguments
endpoint_id: The endpoint ID of the event source.cluster_id: The cluster ID of the event source.event_id: The event ID of the event source.priority: The priority of the event.kv: A key-value store access object for persisting event state as needed.f: A closure that takes anEventTLVWriteand writes the event data into it using TLV encoding. The closure should return an error if writing the event data fails for any reason, in which case the event will not be pushed into the queue.
§Returns
Ok(EventNumber): The sequence number of the emitted event, if the event was successfully emitted.Err(Error): An error if the event could not be emitted.
Trait Implementations§
Auto Trait Implementations§
impl<const N: usize = rs_matter::::im::events::Events::{constant#0}> !Freeze for Events<N>
impl<const N: usize = rs_matter::::im::events::Events::{constant#0}> !RefUnwindSafe for Events<N>
impl<const N: usize = rs_matter::::im::events::Events::{constant#0}> !Sync for Events<N>
impl<const N: usize> Send for Events<N>
impl<const N: usize> Unpin for Events<N>
impl<const N: usize> UnsafeUnpin for Events<N>
impl<const N: usize> UnwindSafe for Events<N>
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> ⓘ
Converts
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> ⓘ
Converts
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 moreSource§impl<T, I> IntoFallibleInit<T> for Iwhere
I: Init<T>,
impl<T, I> IntoFallibleInit<T> for Iwhere
I: Init<T>,
Source§fn into_fallible<E>(self) -> impl Init<T, E>
fn into_fallible<E>(self) -> impl Init<T, E>
Convert the infallible initializer to a fallible one.
Source§impl<Source, Target> OctetsInto<Target> for Sourcewhere
Target: OctetsFrom<Source>,
impl<Source, Target> OctetsInto<Target> for Sourcewhere
Target: OctetsFrom<Source>,
type Error = <Target as OctetsFrom<Source>>::Error
Source§fn try_octets_into(
self,
) -> Result<Target, <Source as OctetsInto<Target>>::Error>
fn try_octets_into( self, ) -> Result<Target, <Source as OctetsInto<Target>>::Error>
Performs the conversion.
Source§fn octets_into(self) -> Target
fn octets_into(self) -> Target
Performs an infallible conversion.