Unify frame metadata setting (addrs and owning_device)

This commit is contained in:
Allen Hill
2026-07-16 13:35:25 -07:00
parent 568c2af9e6
commit 200a225add
5 changed files with 84 additions and 50 deletions
+11 -12
View File
@@ -46,16 +46,15 @@ enum class Device : uint8_t {
};
template <class T>
concept DeviceInterface =
requires { std::integral_constant<Device, T::id>{}; } &&
requires(T dev, const Frame *in, Frame *out, detail::Error::Send err,
uint16_t peripheral) {
dev.init();
dev.handle(in, out);
dev.enable(out);
dev.react(out, err);
{ dev.pending() } -> std::convertible_to<bool>;
dev.resolvepending();
dev.emit(out, peripheral);
};
concept DeviceInterface = requires {
std::integral_constant<Device, T::id>{};
} && requires(T dev, const Frame *in, Frame *out, detail::Error::Send err) {
dev.init();
dev.handle(in, out);
dev.enable(out);
dev.react(out, err);
{ dev.pending() } -> std::convertible_to<bool>;
dev.resolvepending();
dev.emit(out);
};
} // namespace avclan