1pub extern crate log;
2
3#[macro_use]
4pub mod macros;
5#[cfg(feature = "log_inner")]
6mod inner;
7pub mod level;
8mod out_kind;
9
10#[cfg(feature = "log_inner")]
11pub use inner::*;
12
13pub use log::Level;
14pub use log::LevelFilter;
15use serde::{Deserialize, Serialize};
16
17#[cfg(feature = "target")]
18pub use simple_log_derive::*;
19
20pub type SimpleResult<T> = Result<T, String>;
21pub(crate) type InnerLevel = (LevelFilter, Vec<TargetLevel>);
22
23#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
24pub struct TargetLevel {
25 name: String,
26 level: LevelFilter,
27}
28
29impl<S> From<(S, LevelFilter)> for TargetLevel
30where
31 S: AsRef<str>,
32{
33 fn from(value: (S, LevelFilter)) -> Self {
34 Self {
35 name: value.0.as_ref().to_string(),
36 level: value.1,
37 }
38 }
39}
40
41#[cfg(feature = "println")]
42pub static SIMPLE_LOG_INSTANCE: once_cell::sync::OnceCell<()> = once_cell::sync::OnceCell::new();