pub fn assert_debug<T: core::fmt::Debug>(_v: &T) {}
pub fn assert_send<T: Send>(_v: &T) {}
pub fn assert_sync<T: Sync>(_v: &T) {}
pub fn assert_static<T: 'static>(_v: &T) {}
pub fn assert_async_read<T: tokio::io::AsyncRead>(_v: &T) {}
pub fn assert_async_write<T: tokio::io::AsyncWrite>(_v: &T) {}
pub fn init_tracing() {
use std::sync::Once;
static TRACING: Once = Once::new();
TRACING.call_once(|| {
let format = tracing_subscriber::fmt::format()
.compact();
let default_level = if cfg!(debug_assertions) {
tracing::Level::DEBUG
} else {
tracing::Level::WARN
};
let env_filter = tracing_subscriber::EnvFilter::builder()
.with_default_directive(default_level.into())
.with_env_var("S2N_LOG")
.from_env()
.unwrap();
tracing_subscriber::fmt()
.with_env_filter(env_filter)
.event_format(format)
.with_test_writer()
.init();
});
}