11use super :: bytes_format:: { self , BytesFormat } ;
2- use derive_more:: { Add , AddAssign , From , Into , Sum } ;
2+ use derive_more:: { Add , AddAssign , From , Into , Sub , SubAssign , Sum } ;
33use std:: {
44 fmt:: { Debug , Display } ,
55 iter:: Sum ,
6- ops:: { Add , AddAssign , Mul , MulAssign } ,
6+ ops:: { Add , AddAssign , Mul , MulAssign , Sub , SubAssign } ,
77} ;
88
99#[ cfg( feature = "json" ) ]
@@ -28,6 +28,8 @@ pub trait Size:
2828 + Ord
2929 + Add < Output = Self >
3030 + AddAssign
31+ + Sub < Output = Self >
32+ + SubAssign
3133 + Sum
3234 + MulAssignEx < u8 >
3335 + MulAssignEx < u16 >
@@ -81,7 +83,7 @@ macro_rules! newtype {
8183 display: ( $display_format: ty) -> $display_output: ty = $display_impl: expr;
8284 ) => {
8385 #[ derive( Debug , Default , Clone , Copy , PartialEq , Eq , PartialOrd , Ord ) ]
84- #[ derive( From , Into , Add , AddAssign , Sum ) ]
86+ #[ derive( From , Into , Add , AddAssign , Sub , SubAssign , Sum ) ]
8587 #[ cfg_attr( feature = "json" , derive( Deserialize , Serialize ) ) ]
8688 $( #[ $attribute] ) *
8789 pub struct $name( $inner) ;
0 commit comments