pub type D38<const SCALE: u32> = crate::D<crate::int::types::Int<2>, SCALE>;
impl<const SCALE: u32> Default for crate::D<crate::int::types::Int<2>, SCALE> {
#[inline]
fn default() -> Self {
Self::ZERO
}
}
pub type D38s0 = D38<0>;
pub type D38s1 = D38<1>;
pub type D38s2 = D38<2>;
pub type D38s3 = D38<3>;
pub type D38s4 = D38<4>;
pub type D38s5 = D38<5>;
pub type D38s6 = D38<6>;
pub type D38s7 = D38<7>;
pub type D38s8 = D38<8>;
pub type D38s9 = D38<9>;
pub type D38s10 = D38<10>;
pub type D38s11 = D38<11>;
pub type D38s12 = D38<12>;
pub type D38s13 = D38<13>;
pub type D38s14 = D38<14>;
pub type D38s15 = D38<15>;
pub type D38s16 = D38<16>;
pub type D38s17 = D38<17>;
pub type D38s18 = D38<18>;
pub type D38s19 = D38<19>;
pub type D38s20 = D38<20>;
pub type D38s21 = D38<21>;
pub type D38s22 = D38<22>;
pub type D38s23 = D38<23>;
pub type D38s24 = D38<24>;
pub type D38s25 = D38<25>;
pub type D38s26 = D38<26>;
pub type D38s27 = D38<27>;
pub type D38s28 = D38<28>;
pub type D38s29 = D38<29>;
pub type D38s30 = D38<30>;
pub type D38s31 = D38<31>;
pub type D38s32 = D38<32>;
pub type D38s33 = D38<33>;
pub type D38s34 = D38<34>;
pub type D38s35 = D38<35>;
pub type D38s36 = D38<36>;
pub type D38s37 = D38<37>;
pub use crate::support::error::ParseError;
crate::macros::basics::decl_decimal_basics!(wide D38, crate::int::types::Int<2>, 37);
crate::macros::display::decl_decimal_display!(wide D38, crate::int::types::Uint<2>);
crate::macros::from_str::decl_decimal_from_str!(wide D38, crate::int::types::Int<2>);
crate::macros::storage_formatters::decl_decimal_storage_formatters!(D38);
crate::macros::bitwise::decl_decimal_bitwise!(wide D38, crate::int::types::Int<2>);
crate::macros::int_methods::decl_decimal_int_methods!(wide D38, crate::int::types::Int<2>);
crate::macros::num_traits::decl_decimal_num_traits_conversions!(wide D38, crate::int::types::Int<2>);
crate::macros::float_bridge::decl_decimal_float_bridge!(wide D38, crate::int::types::Int<2>);
crate::macros::conversions::decl_try_from_primitive!(wide D38, crate::int::types::Int<2>, i8);
crate::macros::conversions::decl_try_from_primitive!(wide D38, crate::int::types::Int<2>, i16);
crate::macros::conversions::decl_try_from_primitive!(wide D38, crate::int::types::Int<2>, i32);
crate::macros::conversions::decl_try_from_primitive!(wide D38, crate::int::types::Int<2>, i64);
crate::macros::conversions::decl_try_from_primitive!(wide D38, crate::int::types::Int<2>, u8);
crate::macros::conversions::decl_try_from_primitive!(wide D38, crate::int::types::Int<2>, u16);
crate::macros::conversions::decl_try_from_primitive!(wide D38, crate::int::types::Int<2>, u32);
crate::macros::conversions::decl_try_from_primitive!(wide D38, crate::int::types::Int<2>, u64);
crate::macros::conversions::decl_try_from_i128!(wide D38, crate::int::types::Int<2>);
crate::macros::conversions::decl_try_from_u128!(wide D38, crate::int::types::Int<2>);
crate::macros::conversions::decl_try_from_i128!(wide D18, crate::int::types::Int<1>);
crate::macros::conversions::decl_try_from_u128!(wide D18, crate::int::types::Int<1>);
crate::macros::conversions::decl_try_from_i64!(wide D18, crate::int::types::Int<1>);
crate::macros::conversions::decl_try_from_u64!(wide D18, crate::int::types::Int<1>);
crate::macros::conversions::decl_try_from_f64!(wide D38, crate::int::types::Int<2>);
crate::macros::conversions::decl_try_from_f32!(wide D38, crate::int::types::Int<2>);
crate::macros::conversions::decl_try_from_f64!(wide D18, crate::int::types::Int<1>);
crate::macros::conversions::decl_try_from_f32!(wide D18, crate::int::types::Int<1>);
crate::macros::conversions::decl_decimal_int_conversion_methods!(wide D38, crate::int::types::Int<2>);
crate::macros::sign::decl_decimal_sign_methods!(wide D38, crate::int::types::Int<2>);
crate::macros::helpers::decl_decimal_helpers!(wide D38);
crate::macros::rounding_methods::decl_decimal_rounding_methods!(wide D38);
crate::macros::overflow::decl_decimal_overflow_variants!(wide D38, crate::int::types::Int<2>, crate::int::types::Int<4>);
crate::macros::arithmetic::decl_decimal_arithmetic!(wide D38, crate::int::types::Int<2>, crate::int::types::Int<4>);
crate::macros::num_traits::decl_decimal_num_traits_basics!(D38);
crate::macros::transcendental_trait::decl_decimal_transcendental_impl!(D38);
crate::macros::conversions::decl_decimal_int_conversion_methods!(wide D18, crate::int::types::Int<1>);
impl<const SCALE: u32> crate::D<crate::int::types::Int<2>, SCALE> {
#[inline]
pub fn narrow(self) -> Result<crate::D<crate::int::types::Int<1>, SCALE>, crate::support::error::ConvertError> {
self.try_into()
}
}
pub type D18<const SCALE: u32> = crate::D<crate::int::types::Int<1>, SCALE>;
impl<const SCALE: u32> Default for crate::D<crate::int::types::Int<1>, SCALE> {
#[inline]
fn default() -> Self {
Self::ZERO
}
}
crate::macros::basics::decl_decimal_basics!(wide D18, crate::int::types::Int<1>, 17);
crate::macros::arithmetic::decl_decimal_arithmetic!(wide D18, crate::int::types::Int<1>, crate::int::types::Int<2>);
crate::macros::conversions::decl_try_from_primitive!(wide D18, crate::int::types::Int<1>, i8);
crate::macros::conversions::decl_try_from_primitive!(wide D18, crate::int::types::Int<1>, i16);
crate::macros::conversions::decl_try_from_primitive!(wide D18, crate::int::types::Int<1>, i32);
crate::macros::conversions::decl_try_from_primitive!(wide D18, crate::int::types::Int<1>, u8);
crate::macros::conversions::decl_try_from_primitive!(wide D18, crate::int::types::Int<1>, u16);
crate::macros::conversions::decl_try_from_primitive!(wide D18, crate::int::types::Int<1>, u32);
crate::macros::display::decl_decimal_display!(wide D18, crate::int::types::Uint<1>);
crate::macros::overflow::decl_decimal_overflow_variants!(wide D18, crate::int::types::Int<1>, crate::int::types::Int<2>);
crate::macros::num_traits::decl_decimal_num_traits_basics!(D18);
crate::macros::sign::decl_decimal_sign_methods!(wide D18, crate::int::types::Int<1>);
crate::macros::from_str::decl_decimal_from_str!(wide D18, crate::int::types::Int<1>);
crate::macros::float_bridge::decl_decimal_float_bridge!(wide D18, crate::int::types::Int<1>);
crate::macros::storage_formatters::decl_decimal_storage_formatters!(D18);
crate::macros::strict_transcendentals::decl_strict_transcendentals_via_d38!(D18);
crate::macros::transcendental_trait::decl_decimal_transcendental_impl!(D18);
crate::macros::fast_transcendentals::decl_fast_transcendentals_via_f64!(D18);
crate::macros::pow::decl_decimal_pow!(D18);
crate::macros::rounding_methods::decl_decimal_rounding_methods!(wide D18);
crate::macros::helpers::decl_decimal_helpers!(wide D18);
crate::macros::bitwise::decl_decimal_bitwise!(wide D18, crate::int::types::Int<1>);
crate::macros::int_methods::decl_decimal_int_methods!(wide D18, crate::int::types::Int<1>);
crate::macros::num_traits::decl_decimal_num_traits_conversions!(wide D18, crate::int::types::Int<1>);
crate::macros::conversions::decl_cross_width_widening!(wide D38, crate::int::types::Int<2>, D18, crate::int::types::Int<1>);
crate::macros::conversions::decl_cross_width_narrowing!(wide D18, crate::int::types::Int<1>, D38, crate::int::types::Int<2>);
impl<const SCALE: u32> crate::D<crate::int::types::Int<1>, SCALE> {
#[inline]
#[must_use]
pub fn widen(self) -> crate::D<crate::int::types::Int<2>, SCALE> {
self.into()
}
}
pub type D18s0 = D18<0>;
pub type D18s1 = D18<1>;
pub type D18s2 = D18<2>;
pub type D18s3 = D18<3>;
pub type D18s4 = D18<4>;
pub type D18s5 = D18<5>;
pub type D18s6 = D18<6>;
pub type D18s7 = D18<7>;
pub type D18s8 = D18<8>;
pub type D18s9 = D18<9>;
pub type D18s10 = D18<10>;
pub type D18s11 = D18<11>;
pub type D18s12 = D18<12>;
pub type D18s13 = D18<13>;
pub type D18s14 = D18<14>;
pub type D18s15 = D18<15>;
pub type D18s16 = D18<16>;
pub type D18s17 = D18<17>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76<const SCALE: u32> = crate::D<crate::int::types::Int<4>, SCALE>;
#[cfg(any(feature = "d76", feature = "wide"))]
impl<const SCALE: u32> Default for crate::D<crate::int::types::Int<4>, SCALE> {
#[inline]
fn default() -> Self {
Self::ZERO
}
}
#[cfg(any(feature = "d76", feature = "wide"))]
crate::macros::full::decl_decimal_full!(
wide D76,
crate::int::types::Int<4>,
crate::int::types::Uint<4>,
crate::int::types::Int<8>,
crate::int::types::Int<8>,
crate::int::types::Int<16>,
crate::int::types::Int<16>,
crate::int::types::Int<32>,
crate::int::types::Int<16>,
wide_trig_d76,
75,
4,
400,
512
);
#[cfg(any(feature = "d76", feature = "wide"))]
#[cfg(any(feature = "d76", feature = "wide"))]
crate::macros::conversions::decl_cross_width_widening!(wide D76, crate::int::types::Int<4>, D18, crate::int::types::Int<1>);
#[cfg(any(feature = "d76", feature = "wide"))]
crate::macros::conversions::decl_cross_width_widening!(wide D76, crate::int::types::Int<4>, D38, crate::int::types::Int<2>);
#[cfg(any(feature = "d76", feature = "wide"))]
crate::macros::conversions::decl_cross_width_narrowing!(wide D38, crate::int::types::Int<2>, D76, crate::int::types::Int<4>);
#[cfg(any(feature = "d76", feature = "wide"))]
crate::macros::conversions::decl_cross_width_narrowing!(wide D18, crate::int::types::Int<1>, D76, crate::int::types::Int<4>);
#[cfg(any(feature = "d76", feature = "wide"))]
#[cfg(any(feature = "d57", feature = "wide"))]
impl<const SCALE: u32> crate::D<crate::int::types::Int<2>, SCALE> {
#[inline]
#[must_use]
pub fn widen(self) -> crate::D<crate::int::types::Int<3>, SCALE> {
self.into()
}
}
#[cfg(all(
any(feature = "d76", feature = "wide"),
any(feature = "d57", feature = "wide"),
))]
impl<const SCALE: u32> crate::D<crate::int::types::Int<4>, SCALE> {
#[inline]
pub fn narrow(self) -> Result<crate::D<crate::int::types::Int<3>, SCALE>, crate::support::error::ConvertError> {
self.try_into()
}
}
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s0 = D76<0>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s1 = D76<1>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s2 = D76<2>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s3 = D76<3>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s4 = D76<4>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s6 = D76<6>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s9 = D76<9>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s12 = D76<12>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s15 = D76<15>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s18 = D76<18>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s20 = D76<20>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s24 = D76<24>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s28 = D76<28>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s32 = D76<32>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s35 = D76<35>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s38 = D76<38>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s42 = D76<42>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s48 = D76<48>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s50 = D76<50>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s56 = D76<56>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s64 = D76<64>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s70 = D76<70>;
#[cfg(any(feature = "d76", feature = "wide"))]
pub type D76s75 = D76<75>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153<const SCALE: u32> = crate::D<crate::int::types::Int<8>, SCALE>;
#[cfg(any(feature = "d153", feature = "wide"))]
impl<const SCALE: u32> Default for crate::D<crate::int::types::Int<8>, SCALE> {
#[inline]
fn default() -> Self {
Self::ZERO
}
}
#[cfg(any(feature = "d153", feature = "wide"))]
crate::macros::full::decl_decimal_full!(
wide D153,
crate::int::types::Int<8>,
crate::int::types::Uint<8>,
crate::int::types::Int<16>,
crate::int::types::Int<16>,
crate::int::types::Int<32>,
crate::int::types::Int<32>,
crate::int::types::Int<64>,
crate::int::types::Int<32>,
wide_trig_d153,
152,
8,
200,
512
);
#[cfg(any(feature = "d153", feature = "wide"))]
crate::macros::conversions::decl_cross_width_widening!(wide D153, crate::int::types::Int<8>, D38, crate::int::types::Int<2>);
#[cfg(all(
any(feature = "d153", feature = "wide"),
any(feature = "d76", feature = "wide")
))]
crate::macros::conversions::decl_cross_width_widening!(wide D153, crate::int::types::Int<8>, D76, crate::int::types::Int<4>);
#[cfg(all(
any(feature = "d153", feature = "wide"),
any(feature = "d76", feature = "wide")
))]
crate::macros::conversions::decl_cross_width_narrowing!(wide D76, crate::int::types::Int<4>, D153, crate::int::types::Int<8>);
#[cfg(any(feature = "d153", feature = "wide"))]
crate::macros::conversions::decl_cross_width_narrowing!(wide D38, crate::int::types::Int<2>, D153, crate::int::types::Int<8>);
#[cfg(all(
any(feature = "d76", feature = "wide"),
any(feature = "d115", feature = "wide")
))]
impl<const SCALE: u32> crate::D<crate::int::types::Int<4>, SCALE> {
#[inline]
#[must_use]
pub fn widen(self) -> crate::D<crate::int::types::Int<6>, SCALE> {
self.into()
}
}
#[cfg(any(feature = "d153", feature = "wide"))]
impl<const SCALE: u32> crate::D<crate::int::types::Int<8>, SCALE> {
#[cfg(any(feature = "d115", feature = "wide"))]
#[inline]
pub fn narrow(self) -> Result<crate::D<crate::int::types::Int<6>, SCALE>, crate::support::error::ConvertError> {
self.try_into()
}
}
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s0 = D153<0>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s1 = D153<1>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s2 = D153<2>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s4 = D153<4>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s6 = D153<6>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s9 = D153<9>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s12 = D153<12>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s15 = D153<15>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s18 = D153<18>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s20 = D153<20>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s24 = D153<24>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s28 = D153<28>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s32 = D153<32>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s35 = D153<35>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s38 = D153<38>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s50 = D153<50>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s57 = D153<57>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s75 = D153<75>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s76 = D153<76>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s100 = D153<100>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s115 = D153<115>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s140 = D153<140>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s150 = D153<150>;
#[cfg(any(feature = "d153", feature = "wide"))]
pub type D153s152 = D153<152>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307<const SCALE: u32> = crate::D<crate::int::types::Int<16>, SCALE>;
#[cfg(any(feature = "d307", feature = "wide"))]
impl<const SCALE: u32> Default for crate::D<crate::int::types::Int<16>, SCALE> {
#[inline]
fn default() -> Self {
Self::ZERO
}
}
#[cfg(any(feature = "d307", feature = "wide"))]
crate::macros::full::decl_decimal_full!(
wide D307,
crate::int::types::Int<16>,
crate::int::types::Uint<16>,
crate::int::types::Int<32>,
crate::int::types::Int<32>,
crate::int::types::Int<64>,
crate::int::types::Int<64>,
crate::int::types::Int<128>,
crate::int::types::Int<64>,
wide_trig_d307,
306,
16,
400,
512
);
#[cfg(all(
any(feature = "d307", feature = "wide"),
any(feature = "d76", feature = "wide")
))]
crate::macros::conversions::decl_cross_width_widening!(wide D307, crate::int::types::Int<16>, D76, crate::int::types::Int<4>);
#[cfg(all(
any(feature = "d307", feature = "wide"),
any(feature = "d153", feature = "wide")
))]
crate::macros::conversions::decl_cross_width_widening!(wide D307, crate::int::types::Int<16>, D153, crate::int::types::Int<8>);
#[cfg(all(
any(feature = "d307", feature = "wide"),
any(feature = "d153", feature = "wide")
))]
crate::macros::conversions::decl_cross_width_narrowing!(wide D153, crate::int::types::Int<8>, D307, crate::int::types::Int<16>);
#[cfg(all(
any(feature = "d307", feature = "wide"),
any(feature = "d76", feature = "wide")
))]
crate::macros::conversions::decl_cross_width_narrowing!(wide D76, crate::int::types::Int<4>, D307, crate::int::types::Int<16>);
#[cfg(all(
any(feature = "d153", feature = "wide"),
any(feature = "d230", feature = "wide")
))]
impl<const SCALE: u32> crate::D<crate::int::types::Int<8>, SCALE> {
#[inline]
#[must_use]
pub fn widen(self) -> crate::D<crate::int::types::Int<12>, SCALE> {
self.into()
}
}
#[cfg(any(feature = "d307", feature = "wide"))]
impl<const SCALE: u32> crate::D<crate::int::types::Int<16>, SCALE> {
#[cfg(any(feature = "d230", feature = "wide"))]
#[inline]
pub fn narrow(self) -> Result<crate::D<crate::int::types::Int<12>, SCALE>, crate::support::error::ConvertError> {
self.try_into()
}
#[cfg(any(feature = "d462", feature = "x-wide"))]
#[inline]
#[must_use]
pub fn widen(self) -> crate::D<crate::int::types::Int<24>, SCALE> {
self.into()
}
}
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s0 = D307<0>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s1 = D307<1>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s2 = D307<2>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s4 = D307<4>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s6 = D307<6>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s9 = D307<9>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s12 = D307<12>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s15 = D307<15>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s18 = D307<18>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s20 = D307<20>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s24 = D307<24>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s28 = D307<28>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s32 = D307<32>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s35 = D307<35>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s38 = D307<38>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s50 = D307<50>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s75 = D307<75>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s100 = D307<100>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s115 = D307<115>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s150 = D307<150>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s153 = D307<153>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s200 = D307<200>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s230 = D307<230>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s275 = D307<275>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s300 = D307<300>;
#[cfg(any(feature = "d307", feature = "wide"))]
pub type D307s306 = D307<306>;
#[cfg(any(feature = "d57", feature = "wide"))]
pub type D57<const SCALE: u32> = crate::D<crate::int::types::Int<3>, SCALE>;
#[cfg(any(feature = "d57", feature = "wide"))]
impl<const SCALE: u32> Default for crate::D<crate::int::types::Int<3>, SCALE> {
#[inline]
fn default() -> Self {
Self::ZERO
}
}
#[cfg(any(feature = "d57", feature = "wide"))]
crate::macros::full::decl_decimal_full!(
wide D57,
crate::int::types::Int<3>,
crate::int::types::Uint<3>,
crate::int::types::Int<6>,
crate::int::types::Int<6>,
crate::int::types::Int<8>,
crate::int::types::Int<16>,
crate::int::types::Int<32>,
crate::int::types::Int<16>,
wide_trig_d57,
56,
3,
100,
128
);
#[cfg(any(feature = "d57", feature = "wide"))]
pub type D57s0 = D57<0>;
#[cfg(any(feature = "d57", feature = "wide"))]
pub type D57s1 = D57<1>;
#[cfg(any(feature = "d57", feature = "wide"))]
pub type D57s2 = D57<2>;
#[cfg(any(feature = "d57", feature = "wide"))]
pub type D57s4 = D57<4>;
#[cfg(any(feature = "d57", feature = "wide"))]
pub type D57s6 = D57<6>;
#[cfg(any(feature = "d57", feature = "wide"))]
pub type D57s9 = D57<9>;
#[cfg(any(feature = "d57", feature = "wide"))]
pub type D57s12 = D57<12>;
#[cfg(any(feature = "d57", feature = "wide"))]
pub type D57s18 = D57<18>;
#[cfg(any(feature = "d57", feature = "wide"))]
pub type D57s20 = D57<20>;
#[cfg(any(feature = "d57", feature = "wide"))]
pub type D57s24 = D57<24>;
#[cfg(any(feature = "d57", feature = "wide"))]
pub type D57s28 = D57<28>;
#[cfg(any(feature = "d57", feature = "wide"))]
pub type D57s32 = D57<32>;
#[cfg(any(feature = "d57", feature = "wide"))]
pub type D57s38 = D57<38>;
#[cfg(any(feature = "d57", feature = "wide"))]
pub type D57s42 = D57<42>;
#[cfg(any(feature = "d57", feature = "wide"))]
pub type D57s48 = D57<48>;
#[cfg(any(feature = "d57", feature = "wide"))]
pub type D57s52 = D57<52>;
#[cfg(any(feature = "d57", feature = "wide"))]
pub type D57s56 = D57<56>;
#[cfg(any(feature = "d115", feature = "wide"))]
pub type D115<const SCALE: u32> = crate::D<crate::int::types::Int<6>, SCALE>;
#[cfg(any(feature = "d115", feature = "wide"))]
impl<const SCALE: u32> Default for crate::D<crate::int::types::Int<6>, SCALE> {
#[inline]
fn default() -> Self {
Self::ZERO
}
}
#[cfg(any(feature = "d115", feature = "wide"))]
crate::macros::full::decl_decimal_full!(
wide D115,
crate::int::types::Int<6>,
crate::int::types::Uint<6>,
crate::int::types::Int<12>,
crate::int::types::Int<12>,
crate::int::types::Int<16>,
crate::int::types::Int<32>,
crate::int::types::Int<64>,
crate::int::types::Int<32>,
wide_trig_d115,
114,
6,
200,
512
);
#[cfg(any(feature = "d115", feature = "wide"))]
pub type D115s0 = D115<0>;
#[cfg(any(feature = "d115", feature = "wide"))]
pub type D115s1 = D115<1>;
#[cfg(any(feature = "d115", feature = "wide"))]
pub type D115s4 = D115<4>;
#[cfg(any(feature = "d115", feature = "wide"))]
pub type D115s8 = D115<8>;
#[cfg(any(feature = "d115", feature = "wide"))]
pub type D115s16 = D115<16>;
#[cfg(any(feature = "d115", feature = "wide"))]
pub type D115s24 = D115<24>;
#[cfg(any(feature = "d115", feature = "wide"))]
pub type D115s32 = D115<32>;
#[cfg(any(feature = "d115", feature = "wide"))]
pub type D115s38 = D115<38>;
#[cfg(any(feature = "d115", feature = "wide"))]
pub type D115s50 = D115<50>;
#[cfg(any(feature = "d115", feature = "wide"))]
pub type D115s57 = D115<57>;
#[cfg(any(feature = "d115", feature = "wide"))]
pub type D115s64 = D115<64>;
#[cfg(any(feature = "d115", feature = "wide"))]
pub type D115s76 = D115<76>;
#[cfg(any(feature = "d115", feature = "wide"))]
pub type D115s90 = D115<90>;
#[cfg(any(feature = "d115", feature = "wide"))]
pub type D115s100 = D115<100>;
#[cfg(any(feature = "d115", feature = "wide"))]
pub type D115s110 = D115<110>;
#[cfg(any(feature = "d115", feature = "wide"))]
pub type D115s114 = D115<114>;
#[cfg(any(feature = "d230", feature = "wide"))]
pub type D230<const SCALE: u32> = crate::D<crate::int::types::Int<12>, SCALE>;
#[cfg(any(feature = "d230", feature = "wide"))]
impl<const SCALE: u32> Default for crate::D<crate::int::types::Int<12>, SCALE> {
#[inline]
fn default() -> Self {
Self::ZERO
}
}
#[cfg(any(feature = "d230", feature = "wide"))]
crate::macros::full::decl_decimal_full!(
wide D230,
crate::int::types::Int<12>,
crate::int::types::Uint<12>,
crate::int::types::Int<24>,
crate::int::types::Int<24>,
crate::int::types::Int<48>,
crate::int::types::Int<48>,
crate::int::types::Int<96>,
crate::int::types::Int<48>,
wide_trig_d230,
229,
12,
400,
512
);
#[cfg(any(feature = "d230", feature = "wide"))]
pub type D230s0 = D230<0>;
#[cfg(any(feature = "d230", feature = "wide"))]
pub type D230s1 = D230<1>;
#[cfg(any(feature = "d230", feature = "wide"))]
pub type D230s6 = D230<6>;
#[cfg(any(feature = "d230", feature = "wide"))]
pub type D230s18 = D230<18>;
#[cfg(any(feature = "d230", feature = "wide"))]
pub type D230s38 = D230<38>;
#[cfg(any(feature = "d230", feature = "wide"))]
pub type D230s57 = D230<57>;
#[cfg(any(feature = "d230", feature = "wide"))]
pub type D230s75 = D230<75>;
#[cfg(any(feature = "d230", feature = "wide"))]
pub type D230s100 = D230<100>;
#[cfg(any(feature = "d230", feature = "wide"))]
pub type D230s115 = D230<115>;
#[cfg(any(feature = "d230", feature = "wide"))]
pub type D230s140 = D230<140>;
#[cfg(any(feature = "d230", feature = "wide"))]
pub type D230s153 = D230<153>;
#[cfg(any(feature = "d230", feature = "wide"))]
pub type D230s175 = D230<175>;
#[cfg(any(feature = "d230", feature = "wide"))]
pub type D230s200 = D230<200>;
#[cfg(any(feature = "d230", feature = "wide"))]
pub type D230s215 = D230<215>;
#[cfg(any(feature = "d230", feature = "wide"))]
pub type D230s225 = D230<225>;
#[cfg(any(feature = "d230", feature = "wide"))]
pub type D230s229 = D230<229>;
#[cfg(any(feature = "d462", feature = "x-wide"))]
pub type D462<const SCALE: u32> = crate::D<crate::int::types::Int<24>, SCALE>;
#[cfg(any(feature = "d462", feature = "x-wide"))]
impl<const SCALE: u32> Default for crate::D<crate::int::types::Int<24>, SCALE> {
#[inline]
fn default() -> Self {
Self::ZERO
}
}
#[cfg(any(feature = "d462", feature = "x-wide"))]
crate::macros::full::decl_decimal_full!(
wide D462,
crate::int::types::Int<24>,
crate::int::types::Uint<24>,
crate::int::types::Int<48>,
crate::int::types::Int<48>,
crate::int::types::Int<64>,
crate::int::types::Int<64>,
crate::int::types::Int<128>,
crate::int::types::Int<64>,
wide_trig_d462,
461,
24,
400,
512
);
#[cfg(any(feature = "d462", feature = "x-wide"))]
pub type D462s0 = D462<0>;
#[cfg(any(feature = "d462", feature = "x-wide"))]
pub type D462s1 = D462<1>;
#[cfg(any(feature = "d462", feature = "x-wide"))]
pub type D462s18 = D462<18>;
#[cfg(any(feature = "d462", feature = "x-wide"))]
pub type D462s38 = D462<38>;
#[cfg(any(feature = "d462", feature = "x-wide"))]
pub type D462s75 = D462<75>;
#[cfg(any(feature = "d462", feature = "x-wide"))]
pub type D462s115 = D462<115>;
#[cfg(any(feature = "d462", feature = "x-wide"))]
pub type D462s153 = D462<153>;
#[cfg(any(feature = "d462", feature = "x-wide"))]
pub type D462s200 = D462<200>;
#[cfg(any(feature = "d462", feature = "x-wide"))]
pub type D462s230 = D462<230>;
#[cfg(any(feature = "d462", feature = "x-wide"))]
pub type D462s275 = D462<275>;
#[cfg(any(feature = "d462", feature = "x-wide"))]
pub type D462s307 = D462<307>;
#[cfg(any(feature = "d462", feature = "x-wide"))]
pub type D462s350 = D462<350>;
#[cfg(any(feature = "d462", feature = "x-wide"))]
pub type D462s400 = D462<400>;
#[cfg(any(feature = "d462", feature = "x-wide"))]
pub type D462s440 = D462<440>;
#[cfg(any(feature = "d462", feature = "x-wide"))]
pub type D462s460 = D462<460>;
#[cfg(any(feature = "d462", feature = "x-wide"))]
pub type D462s461 = D462<461>;
#[cfg(any(feature = "d616", feature = "x-wide"))]
pub type D616<const SCALE: u32> = crate::D<crate::int::types::Int<32>, SCALE>;
#[cfg(any(feature = "d616", feature = "x-wide"))]
impl<const SCALE: u32> Default for crate::D<crate::int::types::Int<32>, SCALE> {
#[inline]
fn default() -> Self {
Self::ZERO
}
}
#[cfg(any(feature = "d616", feature = "x-wide"))]
crate::macros::full::decl_decimal_full!(
wide D616,
crate::int::types::Int<32>,
crate::int::types::Uint<32>,
crate::int::types::Int<64>,
crate::int::types::Int<64>,
crate::int::types::Int<128>,
crate::int::types::Int<96>,
crate::int::types::Int<256>,
crate::int::types::Int<128>,
wide_trig_d616,
615,
32,
400,
512
);
#[cfg(any(feature = "d616", feature = "x-wide"))]
pub type D616s0 = D616<0>;
#[cfg(any(feature = "d616", feature = "x-wide"))]
pub type D616s1 = D616<1>;
#[cfg(any(feature = "d616", feature = "x-wide"))]
pub type D616s38 = D616<38>;
#[cfg(any(feature = "d616", feature = "x-wide"))]
pub type D616s75 = D616<75>;
#[cfg(any(feature = "d616", feature = "x-wide"))]
pub type D616s115 = D616<115>;
#[cfg(any(feature = "d616", feature = "x-wide"))]
pub type D616s153 = D616<153>;
#[cfg(any(feature = "d616", feature = "x-wide"))]
pub type D616s200 = D616<200>;
#[cfg(any(feature = "d616", feature = "x-wide"))]
pub type D616s230 = D616<230>;
#[cfg(any(feature = "d616", feature = "x-wide"))]
pub type D616s275 = D616<275>;
#[cfg(any(feature = "d616", feature = "x-wide"))]
pub type D616s308 = D616<308>;
#[cfg(any(feature = "d616", feature = "x-wide"))]
pub type D616s380 = D616<380>;
#[cfg(any(feature = "d616", feature = "x-wide"))]
pub type D616s462 = D616<462>;
#[cfg(any(feature = "d616", feature = "x-wide"))]
pub type D616s500 = D616<500>;
#[cfg(any(feature = "d616", feature = "x-wide"))]
pub type D616s555 = D616<555>;
#[cfg(any(feature = "d616", feature = "x-wide"))]
pub type D616s600 = D616<600>;
#[cfg(any(feature = "d616", feature = "x-wide"))]
pub type D616s615 = D616<615>;
#[cfg(any(feature = "d924", feature = "xx-wide"))]
pub type D924<const SCALE: u32> = crate::D<crate::int::types::Int<48>, SCALE>;
#[cfg(any(feature = "d924", feature = "xx-wide"))]
impl<const SCALE: u32> Default for crate::D<crate::int::types::Int<48>, SCALE> {
#[inline]
fn default() -> Self {
Self::ZERO
}
}
#[cfg(any(feature = "d924", feature = "xx-wide"))]
crate::macros::full::decl_decimal_full!(
wide D924,
crate::int::types::Int<48>,
crate::int::types::Uint<48>,
crate::int::types::Int<96>,
crate::int::types::Int<96>,
crate::int::types::Int<192>,
crate::int::types::Int<128>,
crate::int::types::Int<256>,
crate::int::types::Int<192>,
wide_trig_d924,
923,
48,
400,
512,
no_const_table
);
#[cfg(any(feature = "d924", feature = "xx-wide"))]
pub type D924s0 = D924<0>;
#[cfg(any(feature = "d924", feature = "xx-wide"))]
pub type D924s1 = D924<1>;
#[cfg(any(feature = "d924", feature = "xx-wide"))]
pub type D924s75 = D924<75>;
#[cfg(any(feature = "d924", feature = "xx-wide"))]
pub type D924s153 = D924<153>;
#[cfg(any(feature = "d924", feature = "xx-wide"))]
pub type D924s230 = D924<230>;
#[cfg(any(feature = "d924", feature = "xx-wide"))]
pub type D924s307 = D924<307>;
#[cfg(any(feature = "d924", feature = "xx-wide"))]
pub type D924s400 = D924<400>;
#[cfg(any(feature = "d924", feature = "xx-wide"))]
pub type D924s461 = D924<461>;
#[cfg(any(feature = "d924", feature = "xx-wide"))]
pub type D924s462 = D924<462>;
#[cfg(any(feature = "d924", feature = "xx-wide"))]
pub type D924s500 = D924<500>;
#[cfg(any(feature = "d924", feature = "xx-wide"))]
pub type D924s616 = D924<616>;
#[cfg(any(feature = "d924", feature = "xx-wide"))]
pub type D924s700 = D924<700>;
#[cfg(any(feature = "d924", feature = "xx-wide"))]
pub type D924s800 = D924<800>;
#[cfg(any(feature = "d924", feature = "xx-wide"))]
pub type D924s860 = D924<860>;
#[cfg(any(feature = "d924", feature = "xx-wide"))]
pub type D924s900 = D924<900>;
#[cfg(any(feature = "d924", feature = "xx-wide"))]
pub type D924s920 = D924<920>;
#[cfg(any(feature = "d924", feature = "xx-wide"))]
pub type D924s923 = D924<923>;
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
pub type D1232<const SCALE: u32> = crate::D<crate::int::types::Int<64>, SCALE>;
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
impl<const SCALE: u32> Default for crate::D<crate::int::types::Int<64>, SCALE> {
#[inline]
fn default() -> Self {
Self::ZERO
}
}
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
crate::macros::full::decl_decimal_full!(
wide D1232,
crate::int::types::Int<64>,
crate::int::types::Uint<64>,
crate::int::types::Int<128>,
crate::int::types::Int<128>,
crate::int::types::Int<256>,
crate::int::types::Int<176>,
crate::int::types::Int<512>,
crate::int::types::Int<256>,
wide_trig_d1232,
1231,
64,
400,
512,
no_const_table
);
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
pub type D1232s0 = D1232<0>;
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
pub type D1232s1 = D1232<1>;
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
pub type D1232s75 = D1232<75>;
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
pub type D1232s153 = D1232<153>;
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
pub type D1232s230 = D1232<230>;
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
pub type D1232s307 = D1232<307>;
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
pub type D1232s461 = D1232<461>;
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
pub type D1232s616 = D1232<616>;
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
pub type D1232s700 = D1232<700>;
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
pub type D1232s800 = D1232<800>;
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
pub type D1232s900 = D1232<900>;
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
pub type D1232s924 = D1232<924>;
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
pub type D1232s1000 = D1232<1000>;
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
pub type D1232s1100 = D1232<1100>;
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
pub type D1232s1180 = D1232<1180>;
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
pub type D1232s1220 = D1232<1220>;
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
pub type D1232s1230 = D1232<1230>;
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
pub type D1232s1231 = D1232<1231>;
#[cfg(any(feature = "d57", feature = "wide"))]
crate::macros::conversions::decl_cross_width_widening!(wide D57, crate::int::types::Int<3>, D38, crate::int::types::Int<2>);
#[cfg(any(feature = "d57", feature = "wide"))]
crate::macros::conversions::decl_cross_width_narrowing!(wide D38, crate::int::types::Int<2>, D57, crate::int::types::Int<3>);
#[cfg(all(
any(feature = "d57", feature = "wide"),
any(feature = "d76", feature = "wide")
))]
crate::macros::conversions::decl_cross_width_widening!(wide D76, crate::int::types::Int<4>, D57, crate::int::types::Int<3>);
#[cfg(all(
any(feature = "d57", feature = "wide"),
any(feature = "d76", feature = "wide")
))]
crate::macros::conversions::decl_cross_width_narrowing!(wide D57, crate::int::types::Int<3>, D76, crate::int::types::Int<4>);
#[cfg(all(
any(feature = "d76", feature = "wide"),
any(feature = "d115", feature = "wide")
))]
crate::macros::conversions::decl_cross_width_widening!(wide D115, crate::int::types::Int<6>, D76, crate::int::types::Int<4>);
#[cfg(all(
any(feature = "d76", feature = "wide"),
any(feature = "d115", feature = "wide")
))]
crate::macros::conversions::decl_cross_width_narrowing!(wide D76, crate::int::types::Int<4>, D115, crate::int::types::Int<6>);
#[cfg(all(
any(feature = "d115", feature = "wide"),
any(feature = "d153", feature = "wide")
))]
crate::macros::conversions::decl_cross_width_widening!(wide D153, crate::int::types::Int<8>, D115, crate::int::types::Int<6>);
#[cfg(all(
any(feature = "d115", feature = "wide"),
any(feature = "d153", feature = "wide")
))]
crate::macros::conversions::decl_cross_width_narrowing!(wide D115, crate::int::types::Int<6>, D153, crate::int::types::Int<8>);
#[cfg(all(
any(feature = "d153", feature = "wide"),
any(feature = "d230", feature = "wide")
))]
crate::macros::conversions::decl_cross_width_widening!(wide D230, crate::int::types::Int<12>, D153, crate::int::types::Int<8>);
#[cfg(all(
any(feature = "d153", feature = "wide"),
any(feature = "d230", feature = "wide")
))]
crate::macros::conversions::decl_cross_width_narrowing!(wide D153, crate::int::types::Int<8>, D230, crate::int::types::Int<12>);
#[cfg(all(
any(feature = "d230", feature = "wide"),
any(feature = "d307", feature = "wide")
))]
crate::macros::conversions::decl_cross_width_widening!(wide D307, crate::int::types::Int<16>, D230, crate::int::types::Int<12>);
#[cfg(all(
any(feature = "d230", feature = "wide"),
any(feature = "d307", feature = "wide")
))]
crate::macros::conversions::decl_cross_width_narrowing!(wide D230, crate::int::types::Int<12>, D307, crate::int::types::Int<16>);
#[cfg(all(
any(feature = "d307", feature = "wide"),
any(feature = "d462", feature = "x-wide")
))]
crate::macros::conversions::decl_cross_width_widening!(wide D462, crate::int::types::Int<24>, D307, crate::int::types::Int<16>);
#[cfg(all(
any(feature = "d307", feature = "wide"),
any(feature = "d462", feature = "x-wide")
))]
crate::macros::conversions::decl_cross_width_narrowing!(wide D307, crate::int::types::Int<16>, D462, crate::int::types::Int<24>);
#[cfg(all(
any(feature = "d462", feature = "x-wide"),
any(feature = "d616", feature = "x-wide")
))]
crate::macros::conversions::decl_cross_width_widening!(wide D616, crate::int::types::Int<32>, D462, crate::int::types::Int<24>);
#[cfg(all(
any(feature = "d462", feature = "x-wide"),
any(feature = "d616", feature = "x-wide")
))]
crate::macros::conversions::decl_cross_width_narrowing!(wide D462, crate::int::types::Int<24>, D616, crate::int::types::Int<32>);
#[cfg(all(
any(feature = "d616", feature = "x-wide"),
any(feature = "d924", feature = "xx-wide")
))]
crate::macros::conversions::decl_cross_width_widening!(wide D924, crate::int::types::Int<48>, D616, crate::int::types::Int<32>);
#[cfg(all(
any(feature = "d616", feature = "x-wide"),
any(feature = "d924", feature = "xx-wide")
))]
crate::macros::conversions::decl_cross_width_narrowing!(wide D616, crate::int::types::Int<32>, D924, crate::int::types::Int<48>);
#[cfg(all(
any(feature = "d924", feature = "xx-wide"),
any(feature = "d1232", feature = "xx-wide")
))]
crate::macros::conversions::decl_cross_width_widening!(wide D1232, crate::int::types::Int<64>, D924, crate::int::types::Int<48>);
#[cfg(all(
any(feature = "d924", feature = "xx-wide"),
any(feature = "d1232", feature = "xx-wide")
))]
crate::macros::conversions::decl_cross_width_narrowing!(wide D924, crate::int::types::Int<48>, D1232, crate::int::types::Int<64>);
#[cfg(any(feature = "d57", feature = "wide"))]
impl<const SCALE: u32> crate::D<crate::int::types::Int<3>, SCALE> {
#[inline]
pub fn narrow(self) -> Result<crate::D<crate::int::types::Int<2>, SCALE>, crate::support::error::ConvertError> {
self.try_into()
}
}
#[cfg(all(
any(feature = "d57", feature = "wide"),
any(feature = "d76", feature = "wide"),
))]
impl<const SCALE: u32> crate::D<crate::int::types::Int<3>, SCALE> {
#[inline]
#[must_use]
pub fn widen(self) -> crate::D<crate::int::types::Int<4>, SCALE> {
self.into()
}
}
#[cfg(all(
any(feature = "d115", feature = "wide"),
any(feature = "d76", feature = "wide"),
))]
impl<const SCALE: u32> crate::D<crate::int::types::Int<6>, SCALE> {
#[inline]
pub fn narrow(self) -> Result<crate::D<crate::int::types::Int<4>, SCALE>, crate::support::error::ConvertError> {
self.try_into()
}
}
#[cfg(all(
any(feature = "d115", feature = "wide"),
any(feature = "d153", feature = "wide"),
))]
impl<const SCALE: u32> crate::D<crate::int::types::Int<6>, SCALE> {
#[inline]
#[must_use]
pub fn widen(self) -> crate::D<crate::int::types::Int<8>, SCALE> {
self.into()
}
}
#[cfg(all(
any(feature = "d230", feature = "wide"),
any(feature = "d153", feature = "wide"),
))]
impl<const SCALE: u32> crate::D<crate::int::types::Int<12>, SCALE> {
#[inline]
pub fn narrow(self) -> Result<crate::D<crate::int::types::Int<8>, SCALE>, crate::support::error::ConvertError> {
self.try_into()
}
}
#[cfg(all(
any(feature = "d230", feature = "wide"),
any(feature = "d307", feature = "wide"),
))]
impl<const SCALE: u32> crate::D<crate::int::types::Int<12>, SCALE> {
#[inline]
#[must_use]
pub fn widen(self) -> crate::D<crate::int::types::Int<16>, SCALE> {
self.into()
}
}
#[cfg(all(
any(feature = "d462", feature = "x-wide"),
any(feature = "d307", feature = "wide"),
))]
impl<const SCALE: u32> crate::D<crate::int::types::Int<24>, SCALE> {
#[inline]
pub fn narrow(self) -> Result<crate::D<crate::int::types::Int<16>, SCALE>, crate::support::error::ConvertError> {
self.try_into()
}
}
#[cfg(all(
any(feature = "d462", feature = "x-wide"),
any(feature = "d616", feature = "x-wide"),
))]
impl<const SCALE: u32> crate::D<crate::int::types::Int<24>, SCALE> {
#[inline]
#[must_use]
pub fn widen(self) -> crate::D<crate::int::types::Int<32>, SCALE> {
self.into()
}
}
#[cfg(all(
any(feature = "d616", feature = "x-wide"),
any(feature = "d462", feature = "x-wide"),
))]
impl<const SCALE: u32> crate::D<crate::int::types::Int<32>, SCALE> {
#[inline]
pub fn narrow(self) -> Result<crate::D<crate::int::types::Int<24>, SCALE>, crate::support::error::ConvertError> {
self.try_into()
}
}
#[cfg(all(
any(feature = "d616", feature = "x-wide"),
any(feature = "d924", feature = "xx-wide"),
))]
impl<const SCALE: u32> crate::D<crate::int::types::Int<32>, SCALE> {
#[inline]
#[must_use]
pub fn widen(self) -> crate::D<crate::int::types::Int<48>, SCALE> {
self.into()
}
}
#[cfg(all(
any(feature = "d924", feature = "xx-wide"),
any(feature = "d616", feature = "x-wide"),
))]
impl<const SCALE: u32> crate::D<crate::int::types::Int<48>, SCALE> {
#[inline]
pub fn narrow(self) -> Result<crate::D<crate::int::types::Int<32>, SCALE>, crate::support::error::ConvertError> {
self.try_into()
}
}
#[cfg(all(
any(feature = "d924", feature = "xx-wide"),
any(feature = "d1232", feature = "xx-wide"),
))]
impl<const SCALE: u32> crate::D<crate::int::types::Int<48>, SCALE> {
#[inline]
#[must_use]
pub fn widen(self) -> crate::D<crate::int::types::Int<64>, SCALE> {
self.into()
}
}
#[cfg(all(
any(feature = "d1232", feature = "xx-wide"),
any(feature = "d924", feature = "xx-wide"),
))]
impl<const SCALE: u32> crate::D<crate::int::types::Int<64>, SCALE> {
#[inline]
pub fn narrow(self) -> Result<crate::D<crate::int::types::Int<48>, SCALE>, crate::support::error::ConvertError> {
self.try_into()
}
}
impl<const N: usize, const SCALE: u32> crate::D<crate::int::types::Int<N>, SCALE> {
#[inline]
#[must_use]
pub const fn widen_n<const M: usize>(self) -> crate::D<crate::int::types::Int<M>, SCALE> {
debug_assert!(M >= N, "widen_n requires M >= N");
crate::D(self.0.resize_n::<M>())
}
#[inline]
pub const fn narrow_n<const M: usize>(
self,
) -> Option<crate::D<crate::int::types::Int<M>, SCALE>> {
match self.0.try_narrow::<M>() {
Some(raw) => Some(crate::D(raw)),
None => None,
}
}
}
crate::macros::cross_scale_ops::decl_decimal_cross_scale_ops!(D18, crate::int::types::Int<1>);
crate::macros::cross_scale_ops::decl_decimal_cross_scale_ops!(D38, crate::int::types::Int<2>);
#[cfg(any(feature = "d57", feature = "wide"))]
crate::macros::cross_scale_ops::decl_decimal_cross_scale_ops!(D57, crate::int::types::Int<3>);
#[cfg(any(feature = "d76", feature = "wide"))]
crate::macros::cross_scale_ops::decl_decimal_cross_scale_ops!(D76, crate::int::types::Int<4>);
#[cfg(any(feature = "d115", feature = "wide"))]
crate::macros::cross_scale_ops::decl_decimal_cross_scale_ops!(D115, crate::int::types::Int<6>);
#[cfg(any(feature = "d153", feature = "wide"))]
crate::macros::cross_scale_ops::decl_decimal_cross_scale_ops!(D153, crate::int::types::Int<8>);
#[cfg(any(feature = "d230", feature = "wide"))]
crate::macros::cross_scale_ops::decl_decimal_cross_scale_ops!(D230, crate::int::types::Int<12>);
#[cfg(any(feature = "d307", feature = "wide"))]
crate::macros::cross_scale_ops::decl_decimal_cross_scale_ops!(D307, crate::int::types::Int<16>);
#[cfg(any(feature = "d462", feature = "x-wide"))]
crate::macros::cross_scale_ops::decl_decimal_cross_scale_ops!(D462, crate::int::types::Int<24>);
#[cfg(any(feature = "d616", feature = "x-wide"))]
crate::macros::cross_scale_ops::decl_decimal_cross_scale_ops!(D616, crate::int::types::Int<32>);
#[cfg(any(feature = "d924", feature = "xx-wide"))]
crate::macros::cross_scale_ops::decl_decimal_cross_scale_ops!(D924, crate::int::types::Int<48>);
#[cfg(any(feature = "d1232", feature = "xx-wide"))]
crate::macros::cross_scale_ops::decl_decimal_cross_scale_ops!(D1232, crate::int::types::Int<64>);