Skip to main content

ClusterAsyncHandler

Trait ClusterAsyncHandler 

Source
pub trait ClusterAsyncHandler {
    const CLUSTER: Cluster<'static>;

    // Required methods
    fn dataver(&self) -> u32;
    fn dataver_changed(&self);
    async fn description<P>(
        &self,
        ctx: impl ReadContext,
        builder: Utf8StrBuilder<P>,
    ) -> Result<P, Error>
       where P: TLVBuilderParent;
    async fn standard_namespace(
        &self,
        ctx: impl ReadContext,
    ) -> Result<Maybe<u16, AsNullable>, Error>;
    async fn supported_modes<P>(
        &self,
        ctx: impl ReadContext,
        builder: ArrayAttributeRead<ModeOptionStructArrayBuilder<P>, ModeOptionStructBuilder<P>>,
    ) -> Result<P, Error>
       where P: TLVBuilderParent;
    async fn current_mode(&self, ctx: impl ReadContext) -> Result<u8, Error>;
    async fn handle_change_to_mode(
        &self,
        ctx: impl InvokeContext,
        request: ChangeToModeRequest<'_>,
    ) -> Result<(), Error>;

    // Provided methods
    fn run(
        &self,
        _ctx: impl HandlerContext,
    ) -> impl Future<Output = Result<(), Error>> { ... }
    fn start_up_mode(
        &self,
        ctx: impl ReadContext,
    ) -> impl Future<Output = Result<Maybe<u8, AsNullable>, Error>> { ... }
    fn on_mode(
        &self,
        ctx: impl ReadContext,
    ) -> impl Future<Output = Result<Maybe<u8, AsNullable>, Error>> { ... }
    fn set_start_up_mode(
        &self,
        ctx: impl WriteContext,
        value: Maybe<u8, AsNullable>,
    ) -> impl Future<Output = Result<(), Error>> { ... }
    fn set_on_mode(
        &self,
        ctx: impl WriteContext,
        value: Maybe<u8, AsNullable>,
    ) -> impl Future<Output = Result<(), Error>> { ... }
}
Expand description

The handler trait for the cluster.

Required Associated Constants§

Source

const CLUSTER: Cluster<'static>

The cluster-metadata corresponding to this handler trait.

Required Methods§

Source

fn dataver(&self) -> u32

Source

fn dataver_changed(&self)

Source

async fn description<P>( &self, ctx: impl ReadContext, builder: Utf8StrBuilder<P>, ) -> Result<P, Error>

Source

async fn standard_namespace( &self, ctx: impl ReadContext, ) -> Result<Maybe<u16, AsNullable>, Error>

Source

async fn supported_modes<P>( &self, ctx: impl ReadContext, builder: ArrayAttributeRead<ModeOptionStructArrayBuilder<P>, ModeOptionStructBuilder<P>>, ) -> Result<P, Error>

Source

async fn current_mode(&self, ctx: impl ReadContext) -> Result<u8, Error>

Source

async fn handle_change_to_mode( &self, ctx: impl InvokeContext, request: ChangeToModeRequest<'_>, ) -> Result<(), Error>

Provided Methods§

Source

fn run( &self, _ctx: impl HandlerContext, ) -> impl Future<Output = Result<(), Error>>

Source

fn start_up_mode( &self, ctx: impl ReadContext, ) -> impl Future<Output = Result<Maybe<u8, AsNullable>, Error>>

Source

fn on_mode( &self, ctx: impl ReadContext, ) -> impl Future<Output = Result<Maybe<u8, AsNullable>, Error>>

Source

fn set_start_up_mode( &self, ctx: impl WriteContext, value: Maybe<u8, AsNullable>, ) -> impl Future<Output = Result<(), Error>>

Source

fn set_on_mode( &self, ctx: impl WriteContext, value: Maybe<u8, AsNullable>, ) -> impl Future<Output = Result<(), Error>>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<T> ClusterAsyncHandler for &T

Source§

const CLUSTER: Cluster<'static> = T::CLUSTER

Source§

fn dataver(&self) -> u32

Source§

fn dataver_changed(&self)

Source§

fn run( &self, ctx: impl HandlerContext, ) -> impl Future<Output = Result<(), Error>>

Source§

fn description<P>( &self, ctx: impl ReadContext, builder: Utf8StrBuilder<P>, ) -> impl Future<Output = Result<P, Error>>

Source§

fn standard_namespace( &self, ctx: impl ReadContext, ) -> impl Future<Output = Result<Maybe<u16, AsNullable>, Error>>

Source§

fn supported_modes<P>( &self, ctx: impl ReadContext, builder: ArrayAttributeRead<ModeOptionStructArrayBuilder<P>, ModeOptionStructBuilder<P>>, ) -> impl Future<Output = Result<P, Error>>

Source§

fn current_mode( &self, ctx: impl ReadContext, ) -> impl Future<Output = Result<u8, Error>>

Source§

fn start_up_mode( &self, ctx: impl ReadContext, ) -> impl Future<Output = Result<Maybe<u8, AsNullable>, Error>>

Source§

fn on_mode( &self, ctx: impl ReadContext, ) -> impl Future<Output = Result<Maybe<u8, AsNullable>, Error>>

Source§

fn set_start_up_mode( &self, ctx: impl WriteContext, value: Maybe<u8, AsNullable>, ) -> impl Future<Output = Result<(), Error>>

Source§

fn set_on_mode( &self, ctx: impl WriteContext, value: Maybe<u8, AsNullable>, ) -> impl Future<Output = Result<(), Error>>

Source§

fn handle_change_to_mode( &self, ctx: impl InvokeContext, request: ChangeToModeRequest<'_>, ) -> impl Future<Output = Result<(), Error>>

Implementors§