diff options
author | Marcel Müller <m.mueller@ifm.com> | 2022-05-05 11:16:00 +0200 |
---|---|---|
committer | Marcel Müller <m.mueller@ifm.com> | 2022-05-05 15:07:19 +0200 |
commit | fd49321c77b5430740fa33987c54bc09056ab0e8 (patch) | |
tree | 29b1149e1293bd8bf3aaed5d00abd9af9b78719c /crates | |
parent | 39191b04a092cd59bb8ee4d7a43e9a0e07941bca (diff) |
Allow MessageTypes to be built from dynamic msgs
Signed-off-by: Marcel Müller <m.mueller@ifm.com>
Diffstat (limited to 'crates')
-rw-r--r-- | crates/core/tedge_api/src/message.rs | 12 |
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 { |