#![allow(missing_docs)]
use noosphere_core::tracing::{initialize_tracing, NoosphereLog};
use safer_ffi::prelude::*;
const NOOSPHERE_LOG_SILENT: u32 = 0;
const NOOSPHERE_LOG_BASIC: u32 = 1;
const NOOSPHERE_LOG_CHATTY: u32 = 2;
const NOOSPHERE_LOG_INFORMED: u32 = 3;
const NOOSPHERE_LOG_ACADEMIC: u32 = 4;
const NOOSPHERE_LOG_TIRESOME: u32 = 5;
const NOOSPHERE_LOG_DEAFENING: u32 = 6;
#[derive_ReprC(rename = "ns_noosphere_log")]
#[repr(u32)]
#[ffi_export]
pub enum NsNoosphereLog {
Silent = NOOSPHERE_LOG_SILENT,
Basic = NOOSPHERE_LOG_BASIC,
Chatty = NOOSPHERE_LOG_CHATTY,
Informed = NOOSPHERE_LOG_INFORMED,
Academic = NOOSPHERE_LOG_ACADEMIC,
Tiresome = NOOSPHERE_LOG_TIRESOME,
Deafening = NOOSPHERE_LOG_DEAFENING,
}
impl From<NsNoosphereLog> for NoosphereLog {
fn from(log: NsNoosphereLog) -> Self {
match log {
NsNoosphereLog::Silent => NoosphereLog::Silent,
NsNoosphereLog::Basic => NoosphereLog::Basic,
NsNoosphereLog::Chatty => NoosphereLog::Chatty,
NsNoosphereLog::Informed => NoosphereLog::Informed,
NsNoosphereLog::Academic => NoosphereLog::Academic,
NsNoosphereLog::Tiresome => NoosphereLog::Tiresome,
NsNoosphereLog::Deafening => NoosphereLog::Deafening,
}
}
}
impl From<u32> for NsNoosphereLog {
fn from(num: u32) -> Self {
match num {
NOOSPHERE_LOG_SILENT => NsNoosphereLog::Silent,
NOOSPHERE_LOG_BASIC => NsNoosphereLog::Basic,
NOOSPHERE_LOG_CHATTY => NsNoosphereLog::Chatty,
NOOSPHERE_LOG_INFORMED => NsNoosphereLog::Informed,
NOOSPHERE_LOG_ACADEMIC => NsNoosphereLog::Academic,
NOOSPHERE_LOG_TIRESOME => NsNoosphereLog::Tiresome,
_ => NsNoosphereLog::Deafening,
}
}
}
#[ffi_export]
pub fn ns_tracing_initialize(configuration: u32) {
initialize_tracing(Some(NsNoosphereLog::from(configuration).into()));
}