use crate::number::{
instances::integer::Integer,
traits::{one::One, zero::Zero},
};
pub trait Number: One + Zero
where
Self: std::marker::Sized
+ std::marker::Send
+ std::marker::Sync
+ std::clone::Clone
+ std::default::Default
+ std::fmt::Debug
+ std::fmt::Display
+ std::cmp::PartialEq
+ std::ops::Neg<Output = Self>
+ std::ops::Add<Output = Self>
+ std::ops::Sub<Output = Self>
+ std::ops::Mul<Output = Self>
+ std::str::FromStr<Err = ()>,
{
fn absolute_value(&self) -> Self;
fn sign_number(&self) -> Self;
fn from_integer(integer_number: Integer) -> Self;
}