pub type AnySender = Arc<dyn Any + Send + Sync>;Expand description
Shorthand for an anonymous sender, that can be sent instructions from a specific instruction set. The following example illustrates how to convert an AnySender to a ComponentSender.
§Examples
/// Consume `sender` returning either `Some(sender: ComponentSender)` or 'None'.
fn as_component_sender(any_sender: AnySender) -> Option<ComponentSender>
{
if let Ok(sender) = any_sender.downcast::<ComponentSender>() {
// pull out the sender and clone it, as its not copyable
Some((*sender).clone())
} else {
None
}
}
let (sender, receiver) = channel::<ComponentCmd>();
let any_sender: AnySender = Arc::new(sender);
assert_eq!(as_component_sender(any_sender).is_some(), true);
let (sender, receiver) = channel::<StateTable>();
let any_sender: AnySender = Arc::new(sender);
assert_eq!(as_component_sender(any_sender).is_some(), false);
}Aliased Type§
pub struct AnySender { /* private fields */ }