vanadin_tasks/modules/
log.rs1use 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}