1use rquickjs::{
2 cstr,
3 module::{Declarations, Exports, ModuleDef},
4 Ctx, Function, Result,
5};
6
7use super::module::export_default;
8
9pub struct UtilModule;
14
15impl ModuleDef for UtilModule {
16 fn declare(declare: &Declarations<'_>) -> Result<()> {
17 declare.declare(stringify!(TextDecoder))?;
18 declare.declare(stringify!(TextEncoder))?;
19 declare.declare(cstr!("default").to_bytes())?;
21 Ok(())
22 }
23
24 fn evaluate<'js>(ctx: &Ctx<'js>, exports: &Exports<'js>) -> Result<()> {
25 export_default(ctx, exports, |default| {
26 let globals = ctx.globals();
27
28 let encoder: Function = globals.get(stringify!(TextEncoder))?;
29 let decoder: Function = globals.get(stringify!(TextDecoder))?;
30
31 default.set(stringify!(TextEncoder), encoder)?;
32 default.set(stringify!(TextDecoder), decoder)?;
33 Ok(())
36 })
37 }
38}
39
40