web_extensions/tabs/
on_created.rs1use super::{prelude::*, Tab};
2
3pub fn on_created() -> OnCreated {
5 OnCreated(tabs().on_created())
6}
7
8pub struct OnCreated(sys::EventTarget);
10
11pub struct OnCreatedEventListener<'a>(EventListener<'a, dyn FnMut(sys::Tab)>);
12
13impl OnCreatedEventListener<'_> {
14 pub fn forget(self) {
15 self.0.forget()
16 }
17}
18
19impl OnCreated {
20 pub fn add_listener<L>(&self, mut listener: L) -> OnCreatedEventListener
21 where
22 L: FnMut(Tab) + 'static,
23 {
24 let listener = Closure::new(move |tab: sys::Tab| listener(Tab::from(tab)));
25 OnCreatedEventListener(EventListener::raw_new(&self.0, listener))
26 }
27}