#![no_std]
#![warn(missing_docs)]
#![forbid(unsafe_code)]
#![warn(clippy::missing_const_for_fn)]
#![warn(clippy::missing_inline_in_public_items)]
#[derive(Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(transparent)]
pub struct Bool32(u32);
impl Bool32 {
pub const FALSE: Self = Self::new(false);
pub const TRUE: Self = Self::new(true);
#[inline]
#[must_use]
pub const fn new(b: bool) -> Self {
Self(b as _)
}
}
impl From<bool> for Bool32 {
#[inline]
#[must_use]
fn from(value: bool) -> Self {
Self(value as _)
}
}
impl From<Bool32> for bool {
#[inline]
#[must_use]
fn from(value: Bool32) -> Self {
value.0 != 0
}
}
impl core::fmt::Debug for Bool32 {
#[inline]
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
core::fmt::Debug::fmt(&bool::from(*self), f)
}
}
impl core::fmt::Display for Bool32 {
#[inline]
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
core::fmt::Display::fmt(&bool::from(*self), f)
}
}