@@ -34,6 +34,7 @@ use num_bigint::{BigInt, BigUint, Sign};
34
34
use num_integer:: Integer ;
35
35
use num_traits:: { One , Zero } ;
36
36
pub use primitive_conversions:: PrimitiveFromFeltError ;
37
+ use size_of:: SizeOf ;
37
38
38
39
use lambdaworks_math:: {
39
40
field:: {
@@ -48,6 +49,10 @@ use lambdaworks_math::{
48
49
#[ derive( Clone , Copy , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
49
50
pub struct Felt ( pub ( crate ) FieldElement < Stark252PrimeField > ) ;
50
51
52
+ impl SizeOf for Felt {
53
+ fn size_of_children ( & self , _context : & mut size_of:: Context ) { }
54
+ }
55
+
51
56
#[ derive( Debug ) ]
52
57
pub struct FromStrError ( CreationError ) ;
53
58
@@ -768,6 +773,7 @@ mod test {
768
773
use num_traits:: Num ;
769
774
use proptest:: prelude:: * ;
770
775
use regex:: Regex ;
776
+ use size_of:: TotalSize ;
771
777
772
778
#[ test]
773
779
fn test_debug_format ( ) {
@@ -1329,4 +1335,15 @@ mod test {
1329
1335
assert_eq ! ( one, Felt :: ONE ) ;
1330
1336
assert_eq ! ( zero, Felt :: ZERO ) ;
1331
1337
}
1338
+
1339
+ #[ test]
1340
+ fn felt_size_of ( ) {
1341
+ assert_eq ! ( Felt :: ZERO . size_of( ) , TotalSize :: total( 32 ) ) ;
1342
+ assert_eq ! ( Felt :: ONE . size_of( ) , TotalSize :: total( 32 ) ) ;
1343
+ assert_eq ! (
1344
+ Felt ( FieldElement :: from( 1600000000 ) ) . size_of( ) ,
1345
+ TotalSize :: total( 32 )
1346
+ ) ;
1347
+ assert_eq ! ( Felt :: MAX . size_of( ) , TotalSize :: total( 32 ) ) ;
1348
+ }
1332
1349
}
0 commit comments