]> git.proxmox.com Git - rustc.git/blame - vendor/handlebars/src/helpers/helper_log.rs
New upstream version 1.34.2+dfsg1
[rustc.git] / vendor / handlebars / src / helpers / helper_log.rs
CommitLineData
9fa01778
XL
1use context::Context;
2#[cfg(not(feature = "no_logging"))]
3use error::RenderError;
83c7162d 4use helpers::{HelperDef, HelperResult};
9fa01778 5use output::Output;
8bb4bdeb 6use registry::Registry;
83c7162d 7use render::{Helper, RenderContext};
9fa01778
XL
8#[cfg(not(feature = "no_logging"))]
9use value::JsonRender;
10#[cfg(not(feature = "no_logging"))]
11use log::Level;
12#[cfg(not(feature = "no_logging"))]
13use std::str::FromStr;
8bb4bdeb
XL
14
15#[derive(Clone, Copy)]
16pub struct LogHelper;
17
9fa01778 18#[cfg(not(feature = "no_logging"))]
8bb4bdeb 19impl HelperDef for LogHelper {
9fa01778
XL
20 fn call<'reg: 'rc, 'rc>(
21 &self,
22 h: &Helper,
23 _: &Registry,
24 _: &Context,
25 _: &mut RenderContext,
26 _: &mut Output,
27 ) -> HelperResult {
28 let param = h
29 .param(0)
30 .ok_or_else(|| RenderError::new("Param not found for helper \"log\""))?;
31 let level = h.hash_get("level")
32 .and_then(|v| v.value().as_str())
33 .unwrap_or("info");
8bb4bdeb 34
9fa01778
XL
35 if let Ok(log_level) = Level::from_str(level) {
36 log!(log_level, "{}: {}",
37 param.path().unwrap_or(&"".to_owned()),
38 param.value().render())
39 } else {
40 return Err(RenderError::new(&format!("Unsupported logging level {}", level)));
41 }
42 Ok(())
43 }
44}
8bb4bdeb 45
9fa01778
XL
46#[cfg(feature = "no_logging")]
47impl HelperDef for LogHelper {
48 fn call<'reg: 'rc, 'rc>(
49 &self,
50 _: &Helper,
51 _: &Registry,
52 _: &Context,
53 _: &mut RenderContext,
54 _: &mut Output,
55 ) -> HelperResult {
8bb4bdeb
XL
56 Ok(())
57 }
58}
59
60pub static LOG_HELPER: LogHelper = LogHelper;