jay_config/
macros.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/// Declares the entry point of the configuration.
#[macro_export]
macro_rules! config {
    ($f:path) => {
        #[unsafe(no_mangle)]
        #[used]
        pub static mut JAY_CONFIG_ENTRY_V1: $crate::_private::ConfigEntry = {
            struct X;
            impl $crate::_private::Config for X {
                extern "C" fn configure() {
                    $f();
                }
            }
            $crate::_private::ConfigEntryGen::<X>::ENTRY
        };
    };
}

macro_rules! try_get {
    () => {{
        unsafe {
            let client = crate::_private::client::CLIENT.with(|client| client.get());
            if client.is_null() {
                None
            } else {
                Some(&*client)
            }
        }
    }};
}

macro_rules! get {
    () => {{
        get!(Default::default())
    }};
    ($def:expr) => {{
        let client = unsafe {
            let client = crate::_private::client::CLIENT.with(|client| client.get());
            if client.is_null() {
                return $def;
            }
            &*client
        };
        client
    }};
}

// #[macro_export]
// macro_rules! log {
//     ($lvl:expr, $($arg:tt)+) => ({
//         $crate::log(
//             $lvl,
//             &format!($($args)*),
//         );
//     })
// }
//
// #[macro_export]
// macro_rules! trace {
//     ($($arg:tt)+) => {
//         $crate::log!($crate::LogLevel::Trace, $($arg)+)
//     }
// }
//
// #[macro_export]
// macro_rules! debug {
//     ($($arg:tt)+) => {
//         $crate::log!($crate::LogLevel::Debug, $($arg)+)
//     }
// }
//
// #[macro_export]
// macro_rules! info {
//     ($($arg:tt)+) => {
//         $crate::log!($crate::LogLevel::Info, $($arg)+)
//     }
// }
//
// #[macro_export]
// macro_rules! info {
//     ($($arg:tt)+) => {
//         $crate::log!($crate::LogLevel::Info, $($arg)+)
//     }
// }