//! The first supported constructor group is the closed nested MessageKind. //! The core owns its acknowledgment/retirement and validation policies. use super::*; pub(super) fn selector() -> FacetSelector { FacetSelector::Occurrence(OccurrenceFacet::MessageKind) } #[cfg(test)] pub(super) fn timer_selector() -> FacetSelector { FacetSelector::Occurrence(OccurrenceFacet::TimerExpression) } pub(super) fn handles(facet: &FacetSelector) -> bool { *facet == selector() } #[cfg(test)] pub(super) fn value(project: &Project, id: Id) -> Option<&MessageKind> { match project.elements.get(&id)?.shared()? { SharedBody::Occurrence { body: OccurrenceBody::Exchange { message_kind, .. }, .. } => Some(message_kind), _ => None, } }