use std::sync::OnceLock;
pub(crate) fn ensure_init() {
static INIT: OnceLock<()> = OnceLock::new();
INIT.get_or_init(|| {
::antithesis_sdk::antithesis_init();
});
}
macro_rules! assert_always {
($condition:expr, $message:literal, $details:expr) => {{
$crate::antithesis::ensure_init();
let details: ::serde_json::Value = $details;
::antithesis_sdk::assert_always!($condition, $message, &details);
}};
($condition:expr, $message:literal) => {{
$crate::antithesis::ensure_init();
::antithesis_sdk::assert_always!($condition, $message);
}};
}
macro_rules! assert_sometimes {
($condition:expr, $message:literal, $details:expr) => {{
$crate::antithesis::ensure_init();
let details: ::serde_json::Value = $details;
::antithesis_sdk::assert_sometimes!($condition, $message, &details);
}};
($condition:expr, $message:literal) => {{
$crate::antithesis::ensure_init();
::antithesis_sdk::assert_sometimes!($condition, $message);
}};
}
macro_rules! assert_unreachable {
($message:literal, $details:expr) => {{
$crate::antithesis::ensure_init();
let details: ::serde_json::Value = $details;
::antithesis_sdk::assert_unreachable!($message, &details);
}};
($message:literal) => {{
$crate::antithesis::ensure_init();
::antithesis_sdk::assert_unreachable!($message);
}};
}
pub(crate) use assert_always;
pub(crate) use assert_sometimes;
pub(crate) use assert_unreachable;