use crate::{NumError as E, NumResult as Result};
#[cfg(doc)]
use E::{NotImplemented, NotSupported};
#[doc = crate::_tags!(num)]
#[doc = crate::_doc_location!("num/dom")]
#[rustfmt::skip]
#[allow(unused_variables, reason = "default implementation is not implemented")]
pub trait Num {
type Inner;
type Out;
type Rhs;
#[must_use]
fn num_into(self) -> Self::Inner;
fn num_from(value: Self::Inner) -> Result<Self>
where Self: Sized { E::ni() }
fn num_from_ref(value: &Self::Inner) -> Result<Self>
where Self: Sized { E::ni() }
fn num_set(&mut self, value: Self::Inner) -> Result<()> { E::ni() }
fn num_set_ref(&mut self, value: &Self::Inner) -> Result<()> { E::ni() }
fn num_is_zero(&self) -> Result<bool> { E::ni() }
fn num_get_zero() -> Result<Self> where Self: Sized { E::ni() }
fn num_set_zero(&mut self) -> Result<()> { E::ni() }
fn num_is_one(&self) -> Result<bool> { E::ni() }
fn num_get_one() -> Result<Self> where Self: Sized { E::ni() }
fn num_set_one(&mut self) -> Result<()> { E::ni() }
fn num_add(self, rhs: Self::Rhs) -> Result<Self::Out> where Self: Sized { E::ni() }
fn num_ref_add(&self, rhs: &Self::Rhs) -> Result<Self::Out> { E::ni() }
fn num_ref_add_assign(&mut self, rhs: &Self::Rhs) -> Result<()> { E::ni() }
fn num_sub(self, rhs: Self::Rhs) -> Result<Self::Out> where Self: Sized { E::ni() }
fn num_ref_sub(&self, rhs: &Self::Rhs) -> Result<Self::Out> { E::ni() }
fn num_ref_sub_assign(&mut self, rhs: &Self::Rhs) -> Result<()> { E::ni() }
fn num_mul(self, rhs: Self::Rhs) -> Result<Self::Out> where Self: Sized { E::ni() }
fn num_ref_mul(&self, rhs: &Self::Rhs) -> Result<Self::Out> { E::ni() }
fn num_ref_mul_assign(&mut self, rhs: &Self::Rhs) -> Result<()> { E::ni() }
fn num_div(self, rhs: Self::Rhs) -> Result<Self::Out> where Self: Sized { E::ni() }
fn num_ref_div(&self, rhs: &Self::Rhs) -> Result<Self::Out> { E::ni() }
fn num_ref_div_assign(&mut self, rhs: &Self::Rhs) -> Result<()> { E::ni() }
fn num_rem(self, rhs: Self::Rhs) -> Result<Self::Out> where Self: Sized { E::ni() }
fn num_ref_rem(&self, rhs: &Self::Rhs) -> Result<Self::Out> { E::ni() }
fn num_ref_rem_assign(&mut self, rhs: &Self::Rhs) -> Result<()> { E::ni() }
fn num_neg(self) -> Result<Self::Out> where Self: Sized { E::ni() }
fn num_ref_neg(&self) -> Result<Self::Out> { E::ni() }
fn num_abs(self) -> Result<Self::Out> where Self: Sized { E::ni() }
fn num_ref_abs(&self) -> Result<Self::Out> { E::ni() }
}