X-Git-Url: http://git.bitcoin.ninja/index.cgi?p=ldk-c-bindings;a=blobdiff_plain;f=lightning-c-bindings%2Fsrc%2Flightning%2Futil%2Flogger.rs;h=cec6bb5c2035480a69f7994dd2bbab496e1e5e86;hp=6a21fcbefcaa84d322fc5d8c2f7171ab4b3916cb;hb=a82e075188fc15a103234832686915c196bfe240;hpb=4e514def04a4aabea8261173311e6c747d4bd133 diff --git a/lightning-c-bindings/src/lightning/util/logger.rs b/lightning-c-bindings/src/lightning/util/logger.rs index 6a21fcb..cec6bb5 100644 --- a/lightning-c-bindings/src/lightning/util/logger.rs +++ b/lightning-c-bindings/src/lightning/util/logger.rs @@ -23,63 +23,57 @@ use crate::c_types::*; #[derive(Clone)] #[repr(C)] pub enum Level { - ///Designates logger being silent - Off, - /// Designates very serious errors - Error, - /// Designates hazardous situations - Warn, - /// Designates useful information - Info, - /// Designates lower priority information - Debug, /// Designates very low priority, often extremely verbose, information Trace, + /// Designates lower priority information + Debug, + /// Designates useful information + Info, + /// Designates hazardous situations + Warn, + /// Designates very serious errors + Error, } use lightning::util::logger::Level as nativeLevel; impl Level { #[allow(unused)] pub(crate) fn to_native(&self) -> nativeLevel { match self { - Level::Off => nativeLevel::Off, - Level::Error => nativeLevel::Error, - Level::Warn => nativeLevel::Warn, - Level::Info => nativeLevel::Info, - Level::Debug => nativeLevel::Debug, Level::Trace => nativeLevel::Trace, + Level::Debug => nativeLevel::Debug, + Level::Info => nativeLevel::Info, + Level::Warn => nativeLevel::Warn, + Level::Error => nativeLevel::Error, } } #[allow(unused)] pub(crate) fn into_native(self) -> nativeLevel { match self { - Level::Off => nativeLevel::Off, - Level::Error => nativeLevel::Error, - Level::Warn => nativeLevel::Warn, - Level::Info => nativeLevel::Info, - Level::Debug => nativeLevel::Debug, Level::Trace => nativeLevel::Trace, + Level::Debug => nativeLevel::Debug, + Level::Info => nativeLevel::Info, + Level::Warn => nativeLevel::Warn, + Level::Error => nativeLevel::Error, } } #[allow(unused)] pub(crate) fn from_native(native: &nativeLevel) -> Self { match native { - nativeLevel::Off => Level::Off, - nativeLevel::Error => Level::Error, - nativeLevel::Warn => Level::Warn, - nativeLevel::Info => Level::Info, - nativeLevel::Debug => Level::Debug, nativeLevel::Trace => Level::Trace, + nativeLevel::Debug => Level::Debug, + nativeLevel::Info => Level::Info, + nativeLevel::Warn => Level::Warn, + nativeLevel::Error => Level::Error, } } #[allow(unused)] pub(crate) fn native_into(native: nativeLevel) -> Self { match native { - nativeLevel::Off => Level::Off, - nativeLevel::Error => Level::Error, - nativeLevel::Warn => Level::Warn, - nativeLevel::Info => Level::Info, - nativeLevel::Debug => Level::Debug, nativeLevel::Trace => Level::Trace, + nativeLevel::Debug => Level::Debug, + nativeLevel::Info => Level::Info, + nativeLevel::Warn => Level::Warn, + nativeLevel::Error => Level::Error, } } } @@ -88,6 +82,26 @@ impl Level { pub extern "C" fn Level_clone(orig: &Level) -> Level { orig.clone() } +#[no_mangle] +/// Utility method to constructs a new Trace-variant Level +pub extern "C" fn Level_trace() -> Level { + Level::Trace} +#[no_mangle] +/// Utility method to constructs a new Debug-variant Level +pub extern "C" fn Level_debug() -> Level { + Level::Debug} +#[no_mangle] +/// Utility method to constructs a new Info-variant Level +pub extern "C" fn Level_info() -> Level { + Level::Info} +#[no_mangle] +/// Utility method to constructs a new Warn-variant Level +pub extern "C" fn Level_warn() -> Level { + Level::Warn} +#[no_mangle] +/// Utility method to constructs a new Error-variant Level +pub extern "C" fn Level_error() -> Level { + Level::Error} /// Checks if two Levels contain equal inner contents. /// This ignores pointers and is_owned flags and looks at the values in fields. #[no_mangle] @@ -125,6 +139,14 @@ pub struct Logger { } unsafe impl Send for Logger {} unsafe impl Sync for Logger {} +#[no_mangle] +pub(crate) extern "C" fn Logger_clone_fields(orig: &Logger) -> Logger { + Logger { + this_arg: orig.this_arg, + log: Clone::clone(&orig.log), + free: Clone::clone(&orig.free), + } +} use lightning::util::logger::Logger as rustLogger; impl rustLogger for Logger {