vanadin_tasks/modules/
log.rs

1use rquickjs::module::{Declarations, Exports, ModuleDef};
2use rquickjs::{Ctx, Function, Value};
3
4use crate::js::cast_to_string;
5
6pub struct Module;
7
8impl ModuleDef for Module {
9    #[inline(always)]
10    fn declare(declarations: &mut Declarations) -> rquickjs::Result<()> {
11        declarations.declare("info")?;
12        declarations.declare("warn")?;
13        declarations.declare("error")?;
14        declarations.declare("debug")?;
15        declarations.declare("trace")?;
16
17        Ok(())
18    }
19
20    #[inline(always)]
21    fn evaluate<'js>(ctx: &Ctx<'js>, exports: &mut Exports<'js>) -> rquickjs::Result<()> {
22        exports.export("info", Function::new(ctx.clone(), Self::info))?;
23        exports.export("warn", Function::new(ctx.clone(), Self::warn))?;
24        exports.export("error", Function::new(ctx.clone(), Self::error))?;
25        exports.export("debug", Function::new(ctx.clone(), Self::debug))?;
26        exports.export("trace", Function::new(ctx.clone(), Self::trace))?;
27
28        Ok(())
29    }
30}
31
32impl Module {
33    #[inline(always)]
34    fn info(msg: Value) {
35        log::info!("{}", cast_to_string(&msg),)
36    }
37
38    #[inline(always)]
39    fn warn(msg: Value) {
40        log::warn!("{}", cast_to_string(&msg),)
41    }
42
43    #[inline(always)]
44    fn error(msg: Value) {
45        log::error!("{}", cast_to_string(&msg),)
46    }
47
48    #[inline(always)]
49    fn debug(msg: Value) {
50        log::debug!("{}", cast_to_string(&msg),)
51    }
52
53    #[inline(always)]
54    fn trace(msg: Value) {
55        log::trace!("{}", cast_to_string(&msg))
56    }
57}