diff --git a/src/si/mod.rs b/src/si/mod.rs index f5d0a69a..c6642a50 100644 --- a/src/si/mod.rs +++ b/src/si/mod.rs @@ -203,6 +203,13 @@ pub mod marker { V, > where + L: crate::typenum::Integer, + M: crate::typenum::Integer, + T: crate::typenum::Integer, + I: crate::typenum::Integer, + Th: crate::typenum::Integer, + N: crate::typenum::Integer, + J: crate::typenum::Integer, Ul: Units + ?Sized, Ur: Units + ?Sized, V: crate::num_traits::Num + crate::Conversion, diff --git a/src/system.rs b/src/system.rs index e7d6bb0b..d8ef9fcf 100644 --- a/src/system.rs +++ b/src/system.rs @@ -443,7 +443,8 @@ macro_rules! system { for Quantity where Dl: Dimension + ?Sized, - $(Dl::$symbol: $crate::lib::ops::$AddSubTrait,)+ + $(Dl::$symbol: $crate::lib::ops::$AddSubTrait, + >::Output: $crate::typenum::Integer,)+ Dl::Kind: $crate::marker::$MulDivTrait, Dr: Dimension + ?Sized, Dr::Kind: $crate::marker::$MulDivTrait, @@ -534,7 +535,8 @@ macro_rules! system { D: Dimension + ?Sized, D::Kind: $crate::marker::$MulDivTrait, U: Units + ?Sized, - $($crate::typenum::Z0: $crate::lib::ops::$AddSubTrait,)+ + $($crate::typenum::Z0: $crate::lib::ops::$AddSubTrait, + <$crate::typenum::Z0 as $crate::lib::ops::$AddSubTrait>::Output: $crate::typenum::Integer,)+ { type Output = Quantity< $quantities< @@ -647,7 +649,8 @@ macro_rules! system { $quantities<$($crate::typenum::PartialQuot),+>, U, V> where - $(D::$symbol: $crate::lib::ops::PartialDiv<$crate::typenum::P3>,)+ + $(D::$symbol: $crate::lib::ops::PartialDiv<$crate::typenum::P3>, + >::Output: $crate::typenum::Integer,)+ D::Kind: $crate::marker::Div, V: $crate::num::Float, { @@ -757,7 +760,8 @@ macro_rules! system { b: Quantity<$quantities<$($crate::typenum::Sum),+>, Ub, V>, ) -> Quantity<$quantities<$($crate::typenum::Sum),+>, U, V> where - $(D::$symbol: $crate::lib::ops::Add,)+ + $(D::$symbol: $crate::lib::ops::Add, + >::Output: $crate::typenum::Integer,)+ D::Kind: $crate::marker::Mul, V: $crate::num::Float, Da: Dimension + ?Sized, @@ -786,7 +790,8 @@ macro_rules! system { self ) -> Quantity<$quantities<$($crate::typenum::Negate),+>, U, V> where - $(D::$symbol: $crate::lib::ops::Neg,)+ + $(D::$symbol: $crate::lib::ops::Neg, + ::Output: $crate::typenum::Integer,)+ D::Kind: $crate::marker::Div, V: $crate::num::Float, { @@ -814,7 +819,8 @@ macro_rules! system { self, _e: E ) -> Quantity<$quantities<$($crate::typenum::Prod),+>, U, V> where - $(D::$symbol: $crate::lib::ops::Mul,)+ + $(D::$symbol: $crate::lib::ops::Mul, + >::Output: $crate::typenum::Integer,)+ D::Kind: $crate::marker::Mul, E: $crate::typenum::Integer, V: $crate::num::Float, @@ -852,7 +858,8 @@ macro_rules! system { $quantities<$($crate::typenum::PartialQuot),+>, U, V> where - $(D::$symbol: $crate::typenum::PartialDiv<$crate::typenum::P2>,)+ + $(D::$symbol: $crate::typenum::PartialDiv<$crate::typenum::P2>, + >::Output: $crate::typenum::Integer,)+ D::Kind: $crate::marker::Div, V: $crate::num::Float, {