#![no_std]
#![warn(missing_docs)]
#![cfg_attr(feature = "strict", deny(missing_docs))]
#![cfg_attr(feature = "strict", deny(warnings))]
#![cfg_attr(
feature = "cargo-clippy",
allow(
clippy::type_complexity,
clippy::len_without_is_empty,
clippy::new_without_default
)
)]
use core::cmp::Ordering;
#[cfg(not(target_os = "windows"))]
include!(concat!(env!("OUT_DIR"), "/consts.rs"));
#[cfg(not(target_os = "windows"))]
include!(concat!(env!("OUT_DIR"), "/op.rs"));
#[cfg(target_os = "windows")]
include!(concat!(env!("OUT_DIR"), "\\consts.rs"));
#[cfg(target_os = "windows")]
include!(concat!(env!("OUT_DIR"), "\\op.rs"));
pub mod bit;
pub mod int;
pub mod marker_traits;
pub mod operator_aliases;
pub mod private;
pub mod type_operators;
pub mod uint;
pub mod array;
pub use consts::*;
pub use marker_traits::*;
pub use operator_aliases::*;
pub use type_operators::*;
pub use array::{ATerm, TArr};
pub use int::{NInt, PInt};
pub use uint::{UInt, UTerm};
#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Copy, Hash, Debug, Default)]
pub struct Greater;
#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Copy, Hash, Debug, Default)]
pub struct Less;
#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Copy, Hash, Debug, Default)]
pub struct Equal;
impl Ord for Greater {
#[inline]
fn to_ordering() -> Ordering {
Ordering::Greater
}
}
impl Ord for Less {
#[inline]
fn to_ordering() -> Ordering {
Ordering::Less
}
}
impl Ord for Equal {
#[inline]
fn to_ordering() -> Ordering {
Ordering::Equal
}
}
#[macro_export]
macro_rules! assert_type_eq {
($a:ty, $b:ty) => {
let _: <$a as $crate::Same<$b>>::Output;
};
}
#[macro_export]
macro_rules! assert_type {
($a:ty) => {
let _: <$a as $crate::Same<True>>::Output;
};
}