#![deny(missing_docs)]
#![deny(clippy::missing_docs_in_private_items)]
#![warn(unused_extern_crates)]
pub use log;
#[cfg(feature = "egui-prompt")]
use userprompt::egui;
#[derive(Clone, Debug)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "prompt", derive(userprompt::Prompting))]
#[cfg_attr(feature = "egui-prompt", derive(userprompt::EguiPrompting))]
pub enum LogLevel {
Trace,
Debug,
Info,
Warning,
Error,
}
impl Default for LogLevel {
fn default() -> Self {
Self::Info
}
}
#[derive(Debug)]
pub enum ServiceEvent<T> {
Continue,
Pause,
Stop,
SessionConnect(Session),
SessionDisconnect(Session),
SessionRemoteConnect(Session),
SessionRemoteDisconnect(Session),
SessionLogon(Session),
SessionLogoff(Session),
SessionLock(Session),
SessionUnlock(Session),
Custom(T),
}
impl LogLevel {
pub fn level_filter(&self) -> log::LevelFilter {
match self {
crate::LogLevel::Debug => log::LevelFilter::Debug,
crate::LogLevel::Info => log::LevelFilter::Info,
crate::LogLevel::Warning => log::LevelFilter::Warn,
crate::LogLevel::Error => log::LevelFilter::Error,
crate::LogLevel::Trace => log::LevelFilter::Trace,
}
}
pub fn level(&self) -> log::Level {
match self {
crate::LogLevel::Debug => log::Level::Debug,
crate::LogLevel::Info => log::Level::Info,
crate::LogLevel::Warning => log::Level::Warn,
crate::LogLevel::Error => log::Level::Error,
crate::LogLevel::Trace => log::Level::Trace,
}
}
}
cfg_if::cfg_if! {
if #[cfg(windows)] {
mod windows;
pub use winapi;
pub use self::windows::*;
} else if #[cfg(target_os = "macos")] {
todo!();
} else if #[cfg(target_os = "linux")] {
mod linux;
pub use self::linux::*;
} else if #[cfg(target_os = "android")] {
mod android;
pub use self::android::*;
} else {
todo!();
}
}