@@ -8,6 +8,7 @@ use core::str::FromStr;
8
8
use num_bigint:: { BigInt , BigUint , Sign } ;
9
9
use num_integer:: Integer ;
10
10
use num_traits:: { One , Zero } ;
11
+ use size_of:: SizeOf ;
11
12
#[ cfg( any( feature = "prime-bigint" , test) ) ]
12
13
use { lazy_static:: lazy_static, num_traits:: Num } ;
13
14
@@ -44,6 +45,10 @@ use arbitrary::{self, Arbitrary, Unstructured};
44
45
#[ derive( Clone , Copy , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
45
46
pub struct Felt ( pub ( crate ) FieldElement < Stark252PrimeField > ) ;
46
47
48
+ impl SizeOf for Felt {
49
+ fn size_of_children ( & self , _context : & mut size_of:: Context ) { }
50
+ }
51
+
47
52
/// A non-zero [Felt].
48
53
#[ repr( transparent) ]
49
54
#[ derive( Debug , Clone , Copy , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
@@ -1072,6 +1077,7 @@ mod test {
1072
1077
use core:: ops:: Shl ;
1073
1078
use proptest:: prelude:: * ;
1074
1079
use regex:: Regex ;
1080
+ use size_of:: TotalSize ;
1075
1081
1076
1082
#[ test]
1077
1083
fn test_debug_format ( ) {
@@ -1856,4 +1862,15 @@ mod test {
1856
1862
felt. zeroize ( ) ;
1857
1863
assert_eq ! ( felt, Felt :: ZERO ) ;
1858
1864
}
1865
+
1866
+ #[ test]
1867
+ fn felt_size_of ( ) {
1868
+ assert_eq ! ( Felt :: ZERO . size_of( ) , TotalSize :: total( 32 ) ) ;
1869
+ assert_eq ! ( Felt :: ONE . size_of( ) , TotalSize :: total( 32 ) ) ;
1870
+ assert_eq ! (
1871
+ Felt ( FieldElement :: from( 1600000000 ) ) . size_of( ) ,
1872
+ TotalSize :: total( 32 )
1873
+ ) ;
1874
+ assert_eq ! ( Felt :: MAX . size_of( ) , TotalSize :: total( 32 ) ) ;
1875
+ }
1859
1876
}
0 commit comments