#[macro_use]
mod assertions;
#[macro_use]
#[cfg(feature = "fmt")]
mod call_debug_fmt;
#[macro_use]
mod constructors;
#[macro_use]
mod helper_macros;
#[macro_use]
mod fmt_macros;
#[macro_use]
#[cfg(feature = "fmt")]
mod impl_fmt;
#[macro_use]
mod map_ascii_case;
#[macro_use]
mod str_methods;
#[cfg_attr(feature = "__docsrs", doc(cfg(feature = "fmt")))]
#[cfg(feature = "fmt")]
#[macro_export]
macro_rules! try_ {
($e:expr) => {
if let $crate::pmr::Err(e) = $e {
return $crate::pmr::Err(e);
}
};
}
#[cfg_attr(feature = "__docsrs", doc(cfg(feature = "fmt")))]
#[cfg(feature = "fmt")]
#[macro_export]
macro_rules! unwrap {
($e:expr $(,)*) => {
match $e {
$crate::pmr::Ok(x) => x,
$crate::pmr::Err(error) => $crate::Error::unwrap(&error),
}
};
}
#[cfg_attr(feature = "__docsrs", doc(cfg(feature = "fmt")))]
#[cfg(feature = "fmt")]
#[macro_export]
macro_rules! unwrap_or_else {
($e:expr, |$($error:ident)? $(_)*| $orelse:expr ) => {
match $e {
$crate::pmr::Ok(x) => x,
$crate::pmr::Err($($error,)?..) => $orelse,
}
};
}
#[cfg_attr(feature = "__docsrs", doc(cfg(feature = "fmt")))]
#[cfg(feature = "fmt")]
#[macro_export]
macro_rules! coerce_to_fmt {
($reference:expr) => {{
match $reference {
ref reference => {
let marker = $crate::pmr::IsAFormatMarker::NEW;
if false {
marker.infer_type(reference);
}
marker.coerce(marker.unreference(reference))
}
}
}};
}
#[cfg_attr(feature = "__docsrs", doc(cfg(feature = "fmt")))]
#[cfg(feature = "fmt")]
#[deprecated(since = "0.2.19", note = "Use `StrWriter::as_str_alt` instead")]
#[macro_export]
macro_rules! strwriter_as_str {
($expr:expr) => {
unsafe {
let writer: &'static $crate::StrWriter = $expr;
#[allow(clippy::transmute_bytes_to_str)]
$crate::__priv_transmute_bytes_to_str!(writer.as_bytes_alt())
}
};
}
#[cfg_attr(feature = "__docsrs", doc(cfg(feature = "fmt")))]
#[cfg(feature = "fmt")]
macro_rules! conditionally_const {
(
feature = $feature:literal;
$(
$( #[$meta:meta] )*
$vis:vis fn $fn_name:ident ($($params:tt)*) -> $ret:ty $block:block
)*
) => (
$(
$(#[$meta])*
#[cfg(feature = $feature)]
$vis const fn $fn_name ($($params)*) -> $ret $block
$(#[$meta])*
#[cfg(not(feature = $feature))]
$vis fn $fn_name ($($params)*) -> $ret $block
)*
)
}
#[cfg_attr(feature = "__docsrs", doc(cfg(feature = "fmt")))]
#[cfg(feature = "fmt")]
macro_rules! std_kind_impl {
(
impl[$($impl:tt)*] $self:ty
$(where[ $($where_:tt)* ])?
)=>{
impl<$($impl)*> $crate::pmr::FormatMarker for $self
where
$($($where_)*)?
{
type Kind = $crate::pmr::IsStdKind;
type This = Self;
}
impl<$($impl)* __T> $crate::pmr::IsAFormatMarker<$crate::pmr::IsStdKind, $self, __T>
where
$($($where_)*)?
{
#[inline(always)]
pub const fn coerce(self, reference: &$self) -> $crate::pmr::PWrapper<$self> {
$crate::pmr::PWrapper(*reference)
}
}
}
}
#[macro_export]
#[doc(hidden)]
macro_rules! __priv_transmute_bytes_to_str {
($bytes:expr) => {{
let bytes: &'static [$crate::pmr::u8] = $bytes;
let string: &'static $crate::pmr::str = {
$crate::__hidden_utils::PtrToRef {
ptr: bytes as *const [$crate::pmr::u8] as *const str,
}
.reff
};
string
}};
}
#[macro_export]
#[doc(hidden)]
macro_rules! __priv_transmute_raw_bytes_to_str {
($bytes:expr) => {{
let bytes: *const [$crate::pmr::u8] = $bytes;
let string: &'static $crate::pmr::str = {
$crate::__hidden_utils::PtrToRef {
ptr: bytes as *const str,
}
.reff
};
string
}};
}