#![feature(doc_cfg)]
#![cfg_attr(any(target_os="linux", target_os="l4re", target_os="android"), feature(tcp_quickack))]
#![cfg_attr(any(target_os="linux", target_os="l4re", target_os="android"), feature(btree_extract_if))]
#![cfg_attr(target_family="unix", feature(unix_socket_ancillary_data))]
macro_rules! code_name { () => { "namaste" }}
macro_rules! version { () => { "0.29.1" }}
pub const NAME: &str = "Namaste";
pub const CODE_NAME: &str = code_name!();
pub const ID: &str = concat!(
"b1b4db58-59414682-a029819c-84b9a4e1-170e0050-92722253-fae9dfd6-b652a960-",
"e553656c-6b625519-392bb87b-c23a6af3-c498c567-ff5c242f-606d2694-9113a891",
);
pub const VERSION: &str = version!();
pub const RELEASE_DATE: (u16, u8, u8) = (2024, 10, 4);
pub const TAG: &str = concat!(code_name!(), "::b1b4db58::", version!());
extern crate alloc;
macro_rules! __ {
($($arg: tt)+) => {
format!("[{tag}][{module_path}-{line}] {msg}", tag=crate::TAG, module_path=module_path!(), line=line!(), msg=format!($($arg)+))
};
() => {
format!("[{tag}][{module_path}-{line}] (internal error)", tag=crate::TAG, module_path=module_path!(), line=line!())
};
}
macro_rules! err {
($kind: path, $($arg: tt)+) => { std::io::Error::new($kind, __!($($arg)+)) };
($($arg: tt)+) => { err!(std::io::ErrorKind::Other, $($arg)+) };
() => { std::io::Error::new(std::io::ErrorKind::Other, __!()) };
}
#[cfg(not(windows))]
macro_rules! plural_s { ($n: expr) => { if $n == 1 { concat!() } else { concat!('s') }}}
macro_rules! async_call { ($f: expr) => {{
#[cfg(feature="async-std")]
let r = $f.await;
#[cfg(not(feature="async-std"))]
let r = $f;
r
}}}
macro_rules! sleep_duration { () => { 10 }}
pub mod debts;
#[cfg(any(target_os="android", target_os="l4re", target_os="linux", windows))]
#[doc(cfg(any(target_os="android", target_os="l4re", target_os="linux", windows)))]
mod root;
#[cfg(any(target_os="android", target_os="l4re", target_os="linux", windows))]
#[doc(cfg(any(target_os="android", target_os="l4re", target_os="linux", windows)))]
pub use self::root::*;
#[cfg(unix)]
#[doc(cfg(unix))]
mod udsx_unix_stream;
#[cfg(unix)]
#[doc(cfg(unix))]
pub use self::udsx_unix_stream::*;
#[cfg(any(target_os="android", target_os="l4re", target_os="linux"))]
#[doc(cfg(any(target_os="android", target_os="l4re", target_os="linux")))]
mod linux;
#[cfg(any(target_os="android", target_os="l4re", target_os="linux"))]
#[doc(cfg(any(target_os="android", target_os="l4re", target_os="linux")))]
pub use self::linux::Namaste;
#[cfg(windows)]
#[doc(cfg(windows))]
mod windows;
#[cfg(windows)]
#[doc(cfg(windows))]
pub use self::windows::Namaste;
pub mod version_info;
pub type Result<T> = std::io::Result<T>;
#[test]
fn test_crate_version() {
assert_eq!(VERSION, env!("CARGO_PKG_VERSION"));
}