diff options
author | 2022-01-31 17:01:19 +0700 | |
---|---|---|
committer | 2022-01-31 17:01:19 +0700 | |
commit | e4ef29ef20724c3d1a4beff39ddfdaf6d45f9683 (patch) | |
tree | 6e0c9c38366c9d70204c80fc66bd8e8a7652cf52 /web/src/bus.rs | |
parent | c75ed37148b019358b0297171cf31b2577eeb9ae (diff) | |
parent | 6f604ab3995cb345aacf183a569589988aa3ad1f (diff) | |
download | iced-e4ef29ef20724c3d1a4beff39ddfdaf6d45f9683.tar.gz iced-e4ef29ef20724c3d1a4beff39ddfdaf6d45f9683.tar.bz2 iced-e4ef29ef20724c3d1a4beff39ddfdaf6d45f9683.zip |
Merge pull request #1096 from pacmancoder/feat/wgpu-webgl
Experimental WebGL wgpu backend support
Diffstat (limited to 'web/src/bus.rs')
-rw-r--r-- | web/src/bus.rs | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/web/src/bus.rs b/web/src/bus.rs deleted file mode 100644 index 5ce8e810..00000000 --- a/web/src/bus.rs +++ /dev/null @@ -1,53 +0,0 @@ -use iced_futures::futures::channel::mpsc; -use std::rc::Rc; - -/// A publisher of messages. -/// -/// It can be used to route messages back to the [`Application`]. -/// -/// [`Application`]: crate::Application -#[allow(missing_debug_implementations)] -pub struct Bus<Message> { - publish: Rc<Box<dyn Fn(Message) -> ()>>, -} - -impl<Message> Clone for Bus<Message> { - fn clone(&self) -> Self { - Bus { - publish: self.publish.clone(), - } - } -} - -impl<Message> Bus<Message> -where - Message: 'static, -{ - pub(crate) fn new(publish: mpsc::UnboundedSender<Message>) -> Self { - Self { - publish: Rc::new(Box::new(move |message| { - publish.unbounded_send(message).expect("Send message"); - })), - } - } - - /// Publishes a new message for the [`Application`]. - /// - /// [`Application`]: crate::Application - pub fn publish(&self, message: Message) { - (self.publish)(message) - } - - /// Creates a new [`Bus`] that applies the given function to the messages - /// before publishing. - pub fn map<B>(&self, mapper: Rc<Box<dyn Fn(B) -> Message>>) -> Bus<B> - where - B: 'static, - { - let publish = self.publish.clone(); - - Bus { - publish: Rc::new(Box::new(move |message| publish(mapper(message)))), - } - } -} |