Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions bloat-check/src/bin/bloat-check.rs
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ use rs_matter::dm::networks::wireless::{
use rs_matter::dm::networks::NetChangeNotif;
use rs_matter::dm::subscriptions::{Subscriptions, DEFAULT_MAX_SUBSCRIPTIONS};
use rs_matter::dm::{endpoints, IMBuffer};
use rs_matter::dm::{Async, DataModel, Dataver, EmptyHandler, Endpoint, EpClMatcher, Node};
use rs_matter::dm::{DataModel, Dataver, EmptyHandler, Endpoint, EpClMatcher, Node};
use rs_matter::error::Error;
use rs_matter::pairing::qr::QrTextType;
use rs_matter::pairing::DiscoveryCapabilities;
Expand Down Expand Up @@ -197,8 +197,8 @@ type AppBtp<'a> =
Btp<&'a BtpContext<CriticalSectionRawMutex>, CriticalSectionRawMutex, FakeGattPeripheral>;
type AppTransport<'a> = ChainedNetwork<FakeUdp, &'a AppBtp<'a>, fn(&Address) -> bool>;
type AppHandler<'a> = handler_chain_type!(
EpClMatcher => on_off::HandlerAsyncAdaptor<on_off::OnOffHandler<'a, TestOnOffDeviceLogic, NoLevelControl>>,
EpClMatcher => Async<desc::HandlerAdaptor<DescHandler<'a>>>
EpClMatcher => on_off::HandlerAdaptor<on_off::OnOffHandler<'a, TestOnOffDeviceLogic, NoLevelControl>>,
EpClMatcher => desc::HandlerAdaptor<DescHandler<'a>>
| EmptyHandler
);
type AppDmHandler<'a> = WifiHandler<'a, &'a AppNetCtl<'a>, SysHandler<'a, AppHandler<'a>>>;
Expand Down Expand Up @@ -635,11 +635,11 @@ where
EmptyHandler
.chain(
EpClMatcher::new(Some(1), Some(desc::DescHandler::CLUSTER.id)),
Async(desc::DescHandler::new(Dataver::new_rand(matter.rand())).adapt()),
desc::DescHandler::new(Dataver::new_rand(matter.rand())).adapt(),
)
.chain(
EpClMatcher::new(Some(1), Some(TestOnOffDeviceLogic::CLUSTER.id)),
on_off::HandlerAsyncAdaptor(on_off),
on_off::HandlerAdaptor(on_off),
),
),
)
Expand Down
27 changes: 12 additions & 15 deletions examples/src/bin/bridge.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ use rs_matter::dm::endpoints;
use rs_matter::dm::networks::unix::UnixNetifs;
use rs_matter::dm::subscriptions::DefaultSubscriptions;
use rs_matter::dm::{
Async, AsyncHandler, AsyncMetadata, Cluster, DataModel, Dataver, EmptyHandler, Endpoint,
EpClMatcher, InvokeContext, Node, ReadContext,
AsyncHandler, AsyncMetadata, Cluster, DataModel, Dataver, EmptyHandler, Endpoint, EpClMatcher,
InvokeContext, Node, ReadContext,
};
use rs_matter::error::Error;
use rs_matter::pairing::qr::QrTextType;
Expand Down Expand Up @@ -220,10 +220,7 @@ fn dm_handler<'a, OH: OnOffHooks, LH: LevelControlHooks>(
// https://www.1home.io/docs/en/server/configure-devices#manage-rooms
.chain(
EpClMatcher::new(Some(1), Some(desc::DescHandler::CLUSTER.id)),
Async(
desc::DescHandler::new_aggregator(Dataver::new_rand(matter.rand()))
.adapt(),
),
desc::DescHandler::new_aggregator(Dataver::new_rand(matter.rand())).adapt(),
)
// The following chains are the handlers for the bridged devices corresponding to ep 2 and ep3.
//
Expand All @@ -236,27 +233,27 @@ fn dm_handler<'a, OH: OnOffHooks, LH: LevelControlHooks>(
// the lamp, or to switch it on/off.
.chain(
EpClMatcher::new(Some(2), Some(desc::DescHandler::CLUSTER.id)),
Async(desc::DescHandler::new(Dataver::new_rand(matter.rand())).adapt()),
desc::DescHandler::new(Dataver::new_rand(matter.rand())).adapt(),
)
.chain(
EpClMatcher::new(Some(2), Some(TestOnOffDeviceLogic::CLUSTER.id)),
on_off::HandlerAsyncAdaptor(on_off_ep2),
on_off::HandlerAdaptor(on_off_ep2),
)
.chain(
EpClMatcher::new(Some(2), Some(BridgedHandler::CLUSTER.id)),
Async(BridgedHandler::new(Dataver::new_rand(matter.rand())).adapt()),
BridgedHandler::new(Dataver::new_rand(matter.rand())).adapt(),
)
.chain(
EpClMatcher::new(Some(3), Some(desc::DescHandler::CLUSTER.id)),
Async(desc::DescHandler::new(Dataver::new_rand(matter.rand())).adapt()),
desc::DescHandler::new(Dataver::new_rand(matter.rand())).adapt(),
)
.chain(
EpClMatcher::new(Some(3), Some(TestOnOffDeviceLogic::CLUSTER.id)),
on_off::HandlerAsyncAdaptor(on_off_ep3),
on_off::HandlerAdaptor(on_off_ep3),
)
.chain(
EpClMatcher::new(Some(3), Some(BridgedHandler::CLUSTER.id)),
Async(BridgedHandler::new(Dataver::new_rand(matter.rand())).adapt()),
BridgedHandler::new(Dataver::new_rand(matter.rand())).adapt(),
),
),
),
Expand Down Expand Up @@ -292,7 +289,7 @@ impl bridged_device_basic_information::ClusterHandler for BridgedHandler {
self.dataver.changed();
}

fn reachable(&self, _ctx: impl ReadContext) -> Result<bool, Error> {
async fn reachable(&self, _ctx: impl ReadContext) -> Result<bool, Error> {
// This is the only mandatory attribute.
//
// We always report that the bridged device is reachable,
Expand All @@ -301,15 +298,15 @@ impl bridged_device_basic_information::ClusterHandler for BridgedHandler {
Ok(true)
}

fn unique_id<P: TLVBuilderParent>(
async fn unique_id<P: TLVBuilderParent>(
&self,
_ctx: impl ReadContext,
_builder: Utf8StrBuilder<P>,
) -> Result<P, Error> {
todo!()
}

fn handle_keep_active(
async fn handle_keep_active(
&self,
_ctx: impl InvokeContext,
_request: KeepActiveRequest<'_>,
Expand Down
19 changes: 8 additions & 11 deletions examples/src/bin/chip_tool_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,7 @@ use rs_matter::dm::endpoints;
use rs_matter::dm::networks::unix::UnixNetifs;
use rs_matter::dm::subscriptions::DefaultSubscriptions;
use rs_matter::dm::{
Async, AsyncHandler, AsyncMetadata, DataModel, Dataver, EmptyHandler, Endpoint, EpClMatcher,
Node,
AsyncHandler, AsyncMetadata, DataModel, Dataver, EmptyHandler, Endpoint, EpClMatcher, Node,
};
use rs_matter::error::Error;
use rs_matter::pairing::qr::QrTextType;
Expand Down Expand Up @@ -276,21 +275,19 @@ fn dm_handler<'a, OH: OnOffHooks, LH: LevelControlHooks>(
EmptyHandler
.chain(
EpClMatcher::new(Some(1), Some(desc::DescHandler::CLUSTER.id)),
Async(desc::DescHandler::new(Dataver::new_rand(matter.rand())).adapt()),
desc::DescHandler::new(Dataver::new_rand(matter.rand())).adapt(),
)
.chain(
EpClMatcher::new(Some(1), Some(TestOnOffDeviceLogic::CLUSTER.id)),
on_off::HandlerAsyncAdaptor(on_off),
on_off::HandlerAdaptor(on_off),
)
.chain(
EpClMatcher::new(Some(1), Some(UnitTestingHandler::CLUSTER.id)),
Async(
UnitTestingHandler::new(
Dataver::new_rand(matter.rand()),
unit_testing_data,
)
.adapt(),
),
UnitTestingHandler::new(
Dataver::new_rand(matter.rand()),
unit_testing_data,
)
.adapt(),
),
),
),
Expand Down
10 changes: 5 additions & 5 deletions examples/src/bin/dimmable_light.rs
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ use rs_matter::dm::networks::unix::UnixNetifs;
use rs_matter::dm::subscriptions::DefaultSubscriptions;
use rs_matter::dm::IMBuffer;
use rs_matter::dm::{
Async, AsyncHandler, AsyncMetadata, Cluster, DataModel, Dataver, EmptyHandler, Endpoint,
EpClMatcher, Node,
AsyncHandler, AsyncMetadata, Cluster, DataModel, Dataver, EmptyHandler, Endpoint, EpClMatcher,
Node,
};
use rs_matter::error::{Error, ErrorCode};
use rs_matter::pairing::qr::QrTextType;
Expand Down Expand Up @@ -282,15 +282,15 @@ fn dm_handler<'a, LH: LevelControlHooks, OH: OnOffHooks>(
EmptyHandler
.chain(
EpClMatcher::new(Some(1), Some(desc::DescHandler::CLUSTER.id)),
Async(desc::DescHandler::new(Dataver::new_rand(matter.rand())).adapt()),
desc::DescHandler::new(Dataver::new_rand(matter.rand())).adapt(),
)
.chain(
EpClMatcher::new(Some(1), Some(OnOffDeviceLogic::CLUSTER.id)),
on_off::HandlerAsyncAdaptor(on_off),
on_off::HandlerAdaptor(on_off),
)
.chain(
EpClMatcher::new(Some(1), Some(LevelControlDeviceLogic::CLUSTER.id)),
level_control::HandlerAsyncAdaptor(level_control),
level_control::HandlerAdaptor(level_control),
),
),
),
Expand Down
36 changes: 18 additions & 18 deletions examples/src/bin/media_player.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,19 +34,19 @@ use log::info;

// Import the MediaPlayback, ContentLauncher and KeypadInput clusters from `rs-matter`.
//
// User needs to implement the `ClusterAsyncHandler` trait or the `ClusterHandler` trait
// User needs to implement the `ClusterHandler` trait
// so as to handle the requests from the controller.
use rs_matter::dm::clusters::decl::content_launcher::{
self, ClusterAsyncHandler as _, LaunchContentRequest, LaunchURLRequest,
LauncherResponseBuilder, SupportedProtocolsBitmap,
self, ClusterHandler as _, LaunchContentRequest, LaunchURLRequest, LauncherResponseBuilder,
SupportedProtocolsBitmap,
};

use rs_matter::dm::clusters::decl::keypad_input::{
self, ClusterAsyncHandler as _, SendKeyRequest, SendKeyResponseBuilder,
self, ClusterHandler as _, SendKeyRequest, SendKeyResponseBuilder,
};

use rs_matter::dm::clusters::decl::media_playback::{
self, ActivateAudioTrackRequest, ActivateTextTrackRequest, ClusterAsyncHandler as _,
self, ActivateAudioTrackRequest, ActivateTextTrackRequest, ClusterHandler as _,
FastForwardRequest, PlaybackResponseBuilder, PlaybackStateEnum, RewindRequest, SeekRequest,
SkipBackwardRequest, SkipForwardRequest, StatusEnum,
};
Expand All @@ -61,8 +61,8 @@ use rs_matter::dm::endpoints;
use rs_matter::dm::networks::unix::UnixNetifs;
use rs_matter::dm::subscriptions::DefaultSubscriptions;
use rs_matter::dm::{
ArrayAttributeRead, Async, AsyncHandler, AsyncMetadata, Cluster, DataModel, Dataver,
EmptyHandler, Endpoint, EpClMatcher, InvokeContext, Node, ReadContext,
ArrayAttributeRead, AsyncHandler, AsyncMetadata, Cluster, DataModel, Dataver, EmptyHandler,
Endpoint, EpClMatcher, InvokeContext, Node, ReadContext,
};
use rs_matter::error::{Error, ErrorCode};
use rs_matter::pairing::qr::QrTextType;
Expand Down Expand Up @@ -196,7 +196,7 @@ fn dm_handler<'a, OH: OnOffHooks, LH: LevelControlHooks>(
EmptyHandler
.chain(
EpClMatcher::new(Some(1), Some(desc::DescHandler::CLUSTER.id)),
Async(desc::DescHandler::new(Dataver::new_rand(matter.rand())).adapt()),
desc::DescHandler::new(Dataver::new_rand(matter.rand())).adapt(),
)
.chain(
EpClMatcher::new(Some(1), Some(MediaHandler::CLUSTER.id)),
Expand All @@ -212,7 +212,7 @@ fn dm_handler<'a, OH: OnOffHooks, LH: LevelControlHooks>(
)
.chain(
EpClMatcher::new(Some(1), Some(TestOnOffDeviceLogic::CLUSTER.id)),
on_off::HandlerAsyncAdaptor(on_off),
on_off::HandlerAdaptor(on_off),
),
),
),
Expand All @@ -235,8 +235,8 @@ impl MediaHandler {
}

/// Adapt the handler instance to the generic `rs-matter` `AsyncHandler` trait
pub const fn adapt(self) -> media_playback::HandlerAsyncAdaptor<Self> {
media_playback::HandlerAsyncAdaptor(self)
pub const fn adapt(self) -> media_playback::HandlerAdaptor<Self> {
media_playback::HandlerAdaptor(self)
}

/// Update the state of the handler
Expand All @@ -251,7 +251,7 @@ impl MediaHandler {
}
}

impl media_playback::ClusterAsyncHandler for MediaHandler {
impl media_playback::ClusterHandler for MediaHandler {
/// The metadata cluster definition corresponding to the handler
const CLUSTER: Cluster<'static> = media_playback::FULL_CLUSTER
.with_attrs(with!(required))
Expand Down Expand Up @@ -424,12 +424,12 @@ impl ContentHandler {
}

/// Adapt the handler instance to the generic `rs-matter` `AsyncHandler` trait
pub const fn adapt(self) -> content_launcher::HandlerAsyncAdaptor<Self> {
content_launcher::HandlerAsyncAdaptor(self)
pub const fn adapt(self) -> content_launcher::HandlerAdaptor<Self> {
content_launcher::HandlerAdaptor(self)
}
}

impl content_launcher::ClusterAsyncHandler for ContentHandler {
impl content_launcher::ClusterHandler for ContentHandler {
const CLUSTER: Cluster<'static> = content_launcher::FULL_CLUSTER
.with_features(0b11)
.with_attrs(
Expand Down Expand Up @@ -535,12 +535,12 @@ impl KeypadInputHandler {
}

/// Adapt the handler instance to the generic `rs-matter` `AsyncHandler` trait
pub const fn adapt(self) -> keypad_input::HandlerAsyncAdaptor<Self> {
keypad_input::HandlerAsyncAdaptor(self)
pub const fn adapt(self) -> keypad_input::HandlerAdaptor<Self> {
keypad_input::HandlerAdaptor(self)
}
}

impl keypad_input::ClusterAsyncHandler for KeypadInputHandler {
impl keypad_input::ClusterHandler for KeypadInputHandler {
const CLUSTER: Cluster<'static> = keypad_input::FULL_CLUSTER
.with_attrs(with!(required))
.with_cmds(with!(keypad_input::CommandId::SendKey));
Expand Down
7 changes: 3 additions & 4 deletions examples/src/bin/onoff_light.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,7 @@ use rs_matter::dm::networks::unix::UnixNetifs;
use rs_matter::dm::subscriptions::DefaultSubscriptions;
use rs_matter::dm::IMBuffer;
use rs_matter::dm::{
Async, AsyncHandler, AsyncMetadata, DataModel, Dataver, EmptyHandler, Endpoint, EpClMatcher,
Node,
AsyncHandler, AsyncMetadata, DataModel, Dataver, EmptyHandler, Endpoint, EpClMatcher, Node,
};
use rs_matter::error::Error;
use rs_matter::pairing::qr::QrTextType;
Expand Down Expand Up @@ -224,11 +223,11 @@ fn dm_handler<'a, OH: OnOffHooks, LH: LevelControlHooks>(
EmptyHandler
.chain(
EpClMatcher::new(Some(1), Some(desc::DescHandler::CLUSTER.id)),
Async(desc::DescHandler::new(Dataver::new_rand(matter.rand())).adapt()),
desc::DescHandler::new(Dataver::new_rand(matter.rand())).adapt(),
)
.chain(
EpClMatcher::new(Some(1), Some(TestOnOffDeviceLogic::CLUSTER.id)),
on_off::HandlerAsyncAdaptor(on_off),
on_off::HandlerAdaptor(on_off),
),
),
),
Expand Down
2 changes: 1 addition & 1 deletion examples/src/bin/onoff_light_bt.rs
Original file line number Diff line number Diff line change
Expand Up @@ -275,7 +275,7 @@ where
)
.chain(
EpClMatcher::new(Some(1), Some(TestOnOffDeviceLogic::CLUSTER.id)),
on_off::HandlerAsyncAdaptor(on_off),
on_off::HandlerAdaptor(on_off),
),
),
),
Expand Down
9 changes: 4 additions & 5 deletions examples/src/bin/speaker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,7 @@ use rs_matter::dm::endpoints;
use rs_matter::dm::networks::unix::UnixNetifs;
use rs_matter::dm::subscriptions::DefaultSubscriptions;
use rs_matter::dm::{
Async, AsyncHandler, AsyncMetadata, DataModel, Dataver, EmptyHandler, Endpoint, EpClMatcher,
Node,
AsyncHandler, AsyncMetadata, DataModel, Dataver, EmptyHandler, Endpoint, EpClMatcher, Node,
};
use rs_matter::error::Error;
use rs_matter::pairing::qr::QrTextType;
Expand Down Expand Up @@ -191,15 +190,15 @@ fn dm_handler<'a, LH: LevelControlHooks, OH: OnOffHooks>(
EmptyHandler
.chain(
EpClMatcher::new(Some(1), Some(desc::DescHandler::CLUSTER.id)),
Async(desc::DescHandler::new(Dataver::new_rand(matter.rand())).adapt()),
desc::DescHandler::new(Dataver::new_rand(matter.rand())).adapt(),
)
.chain(
EpClMatcher::new(Some(1), Some(LevelControlDeviceLogic::CLUSTER.id)),
level_control::HandlerAsyncAdaptor(level_control),
level_control::HandlerAdaptor(level_control),
)
.chain(
EpClMatcher::new(Some(1), Some(TestOnOffDeviceLogic::CLUSTER.id)),
on_off::HandlerAsyncAdaptor(on_off),
on_off::HandlerAdaptor(on_off),
),
),
),
Expand Down
1 change: 1 addition & 0 deletions rs-matter-macros/.rustfmt.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
edition = "2021"
Loading
Loading