#![expect(clippy::all)]
use std::ops::*;
mod api;
mod primitive;
pub use api::*;
pub use primitive::*;
pub use newnum_proc_macros::{num, num_approx};
pub mod derive {
pub use newnum_proc_macros::{
AHyper, ATrig, AbsDiff, AlwaysNegative, AlwaysPositive, AlwaysZero, FullySigned, Hyper,
MinMax, Negative, NegativeOrZero, NotNegative, NotPositive, NotZero, Num, Positive,
PositiveOrNegative, PositiveOrZero, Root, Round, Signed, Trig, TruncRoot, TypeMax, TypeMin,
Whole, Zero,
};
}
#[allow(unused_imports)]
use newnum_proc_macros::{internal_num, internal_num_approx};
pub trait Num:
FromIntLiteral
+ AbsDiff<Output = Self>
+ MinMax
+ TruncRoot
+ Round
+ Signed<SignMapped = Sign, BitSignMapped = BitSign, BoolMapped = bool>
+ PartialEq
+ PartialOrd
+ Add<Output = Self>
+ Sub<Output = Self>
+ Mul<Output = Self>
+ Div<Output = Self>
+ Rem<Output = Self>
+ AddAssign
+ SubAssign
+ MulAssign
+ DivAssign
+ RemAssign
{
}
impl Num for u8 {}
impl Num for u16 {}
impl Num for u32 {}
impl Num for u64 {}
impl Num for u128 {}
impl Num for usize {}
impl Num for i8 {}
impl Num for i16 {}
impl Num for i32 {}
impl Num for i64 {}
impl Num for i128 {}
impl Num for isize {}
impl Num for f32 {}
impl Num for f64 {}