summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Müller <m.mueller@ifm.com>2022-05-05 11:16:00 +0200
committerMarcel Müller <m.mueller@ifm.com>2022-05-05 15:07:19 +0200
commitfd49321c77b5430740fa33987c54bc09056ab0e8 (patch)
tree29b1149e1293bd8bf3aaed5d00abd9af9b78719c
parent39191b04a092cd59bb8ee4d7a43e9a0e07941bca (diff)
Allow MessageTypes to be built from dynamic msgs
Signed-off-by: Marcel Müller <m.mueller@ifm.com>
-rw-r--r--crates/core/tedge_api/src/message.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/crates/core/tedge_api/src/message.rs b/crates/core/tedge_api/src/message.rs
index 2fd5faa4..a91d3955 100644
--- a/crates/core/tedge_api/src/message.rs
+++ b/crates/core/tedge_api/src/message.rs
@@ -88,6 +88,18 @@ impl MessageType {
}
}
+ pub(crate) fn from_message(msg: &dyn Message) -> Self {
+ let id = msg.type_id();
+ MessageType {
+ name: msg.type_name(),
+ kind: if id == std::any::TypeId::of::<AnyMessage>() {
+ MessageKind::Wildcard
+ } else {
+ MessageKind::Typed(id)
+ },
+ }
+ }
+
/// Get the type's name
#[must_use]
pub fn name(&self) -> &str {