msf-ice 0.2.3

Interactive Connectivity Establishment (ICE) for Rust.
Documentation
#![allow(unused_macros)]

#[cfg(feature = "slog")]
pub use slog::Logger;

#[cfg(not(feature = "slog"))]
#[derive(Clone)]
pub struct Logger;

#[cfg(feature = "slog")]
macro_rules! trace {
    ( $l:expr, $( $args:tt )* ) => {
        slog::trace!( $l, $( $args )* )
    };
}

#[cfg(feature = "slog")]
macro_rules! debug {
    ( $l:expr, $( $args:tt )* ) => {
        slog::debug!( $l, $( $args )* )
    };
}

#[cfg(feature = "slog")]
macro_rules! info {
    ( $l:expr, $( $args:tt )* ) => {
        slog::info!( $l, $( $args )* )
    };
}

#[cfg(feature = "slog")]
macro_rules! warn {
    ( $l:expr, $( $args:tt )* ) => {
        slog::warn!( $l, $( $args )* )
    };
}

#[cfg(feature = "slog")]
macro_rules! error {
    ( $l:expr, $( $args:tt )* ) => {
        slog::error!( $l, $( $args )* )
    };
}

#[cfg(not(feature = "slog"))]
macro_rules! log {
    ( @ { $( $args:expr )* }, $l:expr, $lvl:expr, $fmt:expr, $arg:expr; $( $rest:tt )* ) => {
        log!( @ { $( $args )* $arg }, $l, $lvl, $fmt; $( $rest )*)
    };
    ( @ { $( $args:expr )* }, $l:expr, $lvl:expr, $fmt:expr, $arg:expr, $( $rest:tt )* ) => {
        log!( @ { $( $args )* $arg }, $l, $lvl, $fmt, $( $rest )*)
    };
    ( @ { $( $args:expr )* }, $l:expr, $lvl:expr, $fmt:expr, $arg:expr ) => {
        log!( @ { $( $args )* $arg }, $l, $lvl, $fmt)
    };



    ( @ { $( $args:expr )* }, $l:expr, $lvl:expr, $fmt:expr; $k:literal => $v:expr, $( $rest:tt )* ) => {
        log!( @ { $( $args )* $k $v }, $l, $lvl, concat!($fmt, " {}={}"); $( $rest )* )
    };
    ( @ { $( $args:expr )* }, $l:expr, $lvl:expr, $fmt:expr; $k:literal => %$v:expr, $( $rest:tt )* ) => {
        log!( @ { $( $args )* $k $v }, $l, $lvl, concat!($fmt, " {}={}"); $( $rest )* )
    };
    ( @ { $( $args:expr )* }, $l:expr, $lvl:expr, $fmt:expr; $k:literal => ?$v:expr, $( $rest:tt )* ) => {
        log!( @ { $( $args )* $k $v }, $l, $lvl, concat!($fmt, " {}={:?}"); $( $rest )* )
    };
    ( @ { $( $args:expr )* }, $l:expr, $lvl:expr, $fmt:expr; $k:literal => $v:expr ) => {
        log!( @ { $( $args )* $k $v }, $l, $lvl, concat!($fmt, " {}={}") )
    };
    ( @ { $( $args:expr )* }, $l:expr, $lvl:expr, $fmt:expr; $k:literal => %$v:expr ) => {
        log!( @ { $( $args )* $k $v }, $l, $lvl, concat!($fmt, " {}={}") )
    };
    ( @ { $( $args:expr )* }, $l:expr, $lvl:expr, $fmt:expr; $k:literal => ?$v:expr ) => {
        log!( @ { $( $args )* $k $v }, $l, $lvl, concat!($fmt, " {}={:?}") )
    };



    ( @ { $( $args:expr )* }, $l:expr, $lvl:expr, $fmt:expr; ) => {
        log!( @ { $( $args )* }, $l, $lvl, $fmt)
    };
    ( @ { $( $args:expr )* }, $l:expr, $lvl:expr, $fmt:expr; ) => {
        log!( @ { $( $args )* }, $l, $lvl, $fmt)
    };
    ( @ { $( $args:expr )* }, $l:expr, $lvl:expr, $fmt:expr, ) => {
        log!( @ { $( $args )* }, $l, $lvl, $fmt)
    };



    ( @ { $( $args:expr )* }, $l:expr, $lvl:expr, $fmt:expr ) => {
        {
            let _ = $l;

            #[cfg(not(feature = "log"))]
            {
                $(
                    let _ = $args;
                )*
            }

            #[cfg(feature = "log")]
            log::log!( $lvl, $fmt, $( $args, )* )
        }
    };



    ( $l:expr, $lvl:expr, $( $args:tt )* ) => {
        log!( @ {}, $l, $lvl, $( $args )* )
    };
}

#[cfg(not(feature = "slog"))]
macro_rules! trace {
    ( $l:expr, $( $args:tt )* ) => {
        #[cfg(feature = "log")]
        {
            log!( $l, log::Level::Trace, $( $args )* )
        }

        #[cfg(not(feature = "log"))]
        {
            log!( $l, (), $( $args )* )
        }
    };
}

#[cfg(not(feature = "slog"))]
macro_rules! debug {
    ( $l:expr, $( $args:tt )* ) => {
        #[cfg(feature = "log")]
        {
            log!( $l, log::Level::Debug, $( $args )* )
        }

        #[cfg(not(feature = "log"))]
        {
            log!( $l, (), $( $args )* )
        }
    };
}

#[cfg(not(feature = "slog"))]
macro_rules! info {
    ( $l:expr, $( $args:tt )* ) => {
        #[cfg(feature = "log")]
        {
            log!( $l, log::Level::Info, $( $args )* )
        }

        #[cfg(not(feature = "log"))]
        {
            log!( $l, (), $( $args )* )
        }
    };
}

#[cfg(not(feature = "slog"))]
macro_rules! warn {
    ( $l:expr, $( $args:tt )* ) => {
        #[cfg(feature = "log")]
        {
            log!( $l, log::Level::Warn, $( $args )* )
        }

        #[cfg(not(feature = "log"))]
        {
            log!( $l, (), $( $args )* )
        }
    };
}

#[cfg(not(feature = "slog"))]
macro_rules! error {
    ( $l:expr, $( $args:tt )* ) => {
        #[cfg(feature = "log")]
        {
            log!( $l, log::Level::Error, $( $args )* )
        }

        #[cfg(not(feature = "log"))]
        {
            log!( $l, (), $( $args )* )
        }
    };
}