use rquickjs::{class::Trace, methods, Class, Ctx, JsLifetime, Result};
use super::{NativeSizeFunction, QueueingStrategyInit};
#[derive(JsLifetime, Trace)]
#[rquickjs::class]
pub(crate) struct CountQueuingStrategy<'js> {
high_water_mark: f64,
size: Class<'js, NativeSizeFunction>,
}
#[methods(rename_all = "camelCase")]
impl<'js> CountQueuingStrategy<'js> {
#[qjs(constructor)]
pub(crate) fn new(ctx: Ctx<'js>, init: QueueingStrategyInit) -> Result<Self> {
Ok(Self {
high_water_mark: init.high_water_mark,
size: Class::instance(ctx, NativeSizeFunction::Count)?,
})
}
#[qjs(get)]
pub(crate) fn size(&self) -> Class<'js, NativeSizeFunction> {
self.size.clone()
}
#[qjs(get)]
pub(crate) fn high_water_mark(&self) -> f64 {
self.high_water_mark
}
}