[−][src]Type Definition d3_components::components::AnySender
type AnySender = Arc<dyn Any + Send + Sync>;
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); }