ferridriver_script/bindings/
disposable.rs1use crate::bindings::convert::FerriResultExt;
7use rquickjs::{JsLifetime, class::Trace};
8use std::sync::Arc;
9
10#[derive(JsLifetime, Trace)]
11#[rquickjs::class(rename = "Disposable")]
12pub struct DisposableJs {
13 #[qjs(skip_trace)]
14 inner: Arc<ferridriver::Disposable>,
15}
16
17impl DisposableJs {
18 #[must_use]
19 pub fn new(inner: ferridriver::Disposable) -> Self {
20 Self { inner: Arc::new(inner) }
21 }
22}
23
24#[rquickjs::methods]
25impl DisposableJs {
26 #[qjs(rename = "dispose")]
28 pub async fn dispose(&self) -> rquickjs::Result<()> {
29 let inner = Arc::clone(&self.inner);
30 inner.dispose().await.into_js()
31 }
32
33 #[qjs(rename = "remove")]
35 pub async fn remove(&self) -> rquickjs::Result<()> {
36 let inner = Arc::clone(&self.inner);
37 inner.dispose().await.into_js()
38 }
39}