#[macro_export]
macro_rules! echo {
($($arg:tt)*) => ({
$crate::output::echo(std::format!($($arg)*))
})
}
#[macro_export]
macro_rules! error {
($($arg:tt)*) => ({
$crate::output::log($crate::output::LogLevel::Error, std::format!($($arg)*))
})
}
#[macro_export]
macro_rules! warning {
($($arg:tt)*) => ({
$crate::output::log($crate::output::LogLevel::Warning, std::format!($($arg)*))
})
}
#[macro_export]
macro_rules! notice {
($($arg:tt)*) => ({
$crate::output::log($crate::output::LogLevel::Notice, std::format!($($arg)*))
})
}
#[macro_export]
macro_rules! deprecated {
($($arg:tt)*) => ({
$crate::output::log($crate::output::LogLevel::Deprecated, std::format!($($arg)*))
})
}
#[macro_export]
#[cfg(phper_zts)]
#[cfg_attr(docsrs, doc(cfg(true)))]
macro_rules! cg {
($x:ident) => {
(*($crate::sys::ts_resource_ex($crate::sys::compiler_globals_id, std::ptr::null_mut())
as *mut $crate::sys::zend_compiler_globals))
.$x
};
}
#[macro_export]
#[cfg(not(phper_zts))]
#[cfg_attr(docsrs, doc(cfg(true)))]
macro_rules! cg {
($x:ident) => {
$crate::sys::compiler_globals.$x
};
}
#[macro_export]
#[cfg(phper_zts)]
#[cfg_attr(docsrs, doc(cfg(true)))]
macro_rules! eg {
($x:ident) => {
(*($crate::sys::ts_resource_ex($crate::sys::executor_globals_id, std::ptr::null_mut())
as *mut $crate::sys::zend_executor_globals))
.$x
};
}
#[macro_export]
#[cfg(not(phper_zts))]
#[cfg_attr(docsrs, doc(cfg(true)))]
macro_rules! eg {
($x:ident) => {
$crate::sys::executor_globals.$x
};
}
#[macro_export]
#[cfg(phper_zts)]
#[cfg_attr(docsrs, doc(cfg(true)))]
macro_rules! pg {
($x:ident) => {
(*($crate::sys::ts_resource_ex($crate::sys::core_globals_id, std::ptr::null_mut())
as *mut $crate::sys::php_core_globals))
.$x
};
}
#[macro_export]
#[cfg(not(phper_zts))]
#[cfg_attr(docsrs, doc(cfg(true)))]
macro_rules! pg {
($x:ident) => {
$crate::sys::core_globals.$x
};
}
#[macro_export]
#[cfg(phper_zts)]
#[cfg_attr(docsrs, doc(cfg(true)))]
macro_rules! sg {
($x:ident) => {
(*($crate::sys::ts_resource_ex($crate::sys::sapi_globals_id, std::ptr::null_mut())
as *mut $crate::sys::sapi_globals_struct))
.$x
};
}
#[macro_export]
#[cfg(not(phper_zts))]
#[cfg_attr(docsrs, doc(cfg(true)))]
macro_rules! sg {
($x:ident) => {
$crate::sys::sapi_globals.$x
};
}