nickel_lang_parser/
metrics.rs1#[cfg(feature = "metrics")]
5#[macro_export]
6macro_rules! increment {
7 ( $counter:expr ) => {
8 $crate::metrics::increment!($counter, 1)
9 };
10 ( $counter:expr, $count:expr ) => {
11 ::metrics::counter!($counter).increment($count)
12 };
13}
14
15#[cfg(not(feature = "metrics"))]
16#[macro_export]
17macro_rules! increment {
18 ( $( $args:expr ),+ ) => {};
19}
20
21#[cfg(feature = "metrics")]
22#[macro_export]
23macro_rules! sample {
24 ( $counter:expr, $value:expr ) => {
25 ::metrics::histogram!($counter).record($value)
26 };
27}
28
29#[cfg(not(feature = "metrics"))]
30#[macro_export]
31macro_rules! sample {
32 ( $( $args:expr ),+ ) => {};
33}
34
35#[cfg(feature = "metrics")]
36#[macro_export]
37macro_rules! measure_runtime {
38 ( $counter:expr, $expr:expr ) => {{
39 let start_time = ::std::time::Instant::now();
40 let result = $expr;
41 let duration = start_time.elapsed();
42 ::metrics::counter!($counter).increment(duration.as_millis() as u64);
43 result
44 }};
45}
46
47#[cfg(not(feature = "metrics"))]
48#[macro_export]
49macro_rules! measure_runtime {
50 ( $counter: expr, $expr: expr ) => {
51 $expr
52 };
53}
54
55pub use increment;
56pub use measure_runtime;
57pub use sample;