web_extensions/tabs/
on_created.rs

1use super::{prelude::*, Tab};
2
3/// <https://developer.chrome.com/docs/extensions/reference/tabs/#event-onCreated>
4pub fn on_created() -> OnCreated {
5    OnCreated(tabs().on_created())
6}
7
8/// <https://developer.chrome.com/docs/extensions/reference/tabs/#event-onCreated>
9pub 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}