Macro enso_logger::define_levels_group [−][src]
macro_rules! define_levels_group { ($group_name : ident { $($name : ident), * $(,) ? }) => { ... }; }
Expand description
Group levels defined with define_levels
(possibly several, possibly merging user-defined
types) into a common structure for logger parametrization. Also, defines a generic formatter
impl for the type, which redirects calls to more specific instances.
For example, for define_levels_group!(DefaultLevels {Trace,Debug,Info,Warning,Error});
, the
following code will be generated:
ⓘ
#[derive(Clone,Copy,Debug,PartialEq,Eq,Hash)] pub enum DefaultLevels { Trace,Debug,Info,Warning,Error } impl From<Trace> for DefaultLevels { fn from(_: Trace) -> Self { Self::Trace } } impl From<Debug> for DefaultLevels { fn from(_: Debug) -> Self { Self::Debug } } impl From<Info> for DefaultLevels { fn from(_: Info) -> Self { Self::Info } } impl From<Warning> for DefaultLevels { fn from(_: Warning) -> Self { Self::Warning } } impl From<Error> for DefaultLevels { fn from(_: Error) -> Self { Self::Error } } impl<T> formatter::GenericDefinition<DefaultLevels> for T where T : formatter::Definition<level::Trace>, T : formatter::Definition<level::Debug>, T : formatter::Definition<level::Info>, T : formatter::Definition<level::Warning>, T : formatter::Definition<level::Error> { fn generic_format(entry:&Entry<DefaultLevels>) -> Option<Self::Output> { match entry.level { DefaultLevels::Trace => formatter::format::<T, level::Trace>(&entry.gen_entry), DefaultLevels::Debug => formatter::format::<T, level::Debug>(&entry.gen_entry), DefaultLevels::Info => formatter::format::<T, level::Info>(&entry.gen_entry), DefaultLevels::Warning => formatter::format::<T, level::Warning>(&entry.gen_entry), DefaultLevels::Error => formatter::format::<T, level::Error>(&entry.gen_entry) } } }