dimas_com/traits/
capabilities.rs1#[doc(hidden)]
7extern crate alloc;
8
9use alloc::string::String;
10use dimas_core::{
11 error::Result,
12 message_types::{Message, QueryableMsg},
13 traits::Capability,
14};
15
16pub trait LivelinessSubscriber: Capability + Send + Sync {
19 fn token(&self) -> &String;
21}
22
23pub trait Observer: Capability + Send + Sync {
25 #[must_use]
27 fn selector(&self) -> &str;
28
29 fn cancel(&self) -> Result<()>;
32
33 fn request(&self, message: Option<Message>) -> Result<()>;
36}
37
38pub trait Publisher: Capability + Send + Sync {
40 #[must_use]
42 fn selector(&self) -> &str;
43
44 fn put(&self, message: Message) -> Result<()>;
47
48 fn delete(&self) -> Result<()>;
51}
52
53pub trait Querier: Capability + Send + Sync {
55 #[must_use]
57 fn selector(&self) -> &str;
58
59 fn get(
62 &self,
63 message: Option<Message>,
64 callback: Option<&mut dyn FnMut(QueryableMsg) -> Result<()>>,
65 ) -> Result<()>;
66}
67
68pub trait Responder: Capability + Send + Sync {
70 #[must_use]
72 fn selector(&self) -> &str;
73}
74