33
44use super :: * ;
55
6+ #[ cfg( test) ]
7+ mod tests;
8+
69#[ derive( Serialize , Deserialize , JsonSchema , Clone , Debug , Eq , PartialEq , Default ) ]
710#[ serde( rename_all = "PascalCase" ) ]
811pub struct ObjStat {
@@ -11,14 +14,18 @@ pub struct ObjStat {
1114}
1215lotus_json_with_self ! ( ObjStat ) ;
1316
14- #[ derive( Debug , Clone , Serialize , Deserialize , JsonSchema ) ]
17+ #[ derive( Debug , Clone , Serialize , Deserialize , PartialEq , Eq , JsonSchema ) ]
1518pub struct TipsetSelector {
16- #[ serde( with = "crate::lotus_json" ) ]
19+ #[ serde(
20+ with = "crate::lotus_json" ,
21+ skip_serializing_if = "ApiTipsetKey::is_none" ,
22+ default
23+ ) ]
1724 #[ schemars( with = "LotusJson<TipsetKey>" ) ]
1825 pub key : ApiTipsetKey ,
19- #[ serde( skip_serializing_if = "Option::is_none" ) ]
26+ #[ serde( skip_serializing_if = "Option::is_none" , default ) ]
2027 pub height : Option < TipsetHeight > ,
21- #[ serde( skip_serializing_if = "Option::is_none" ) ]
28+ #[ serde( skip_serializing_if = "Option::is_none" , default ) ]
2229 pub tag : Option < TipsetTag > ,
2330}
2431lotus_json_with_self ! ( TipsetSelector ) ;
@@ -49,7 +56,7 @@ impl TipsetSelector {
4956 }
5057}
5158
52- #[ derive( Debug , Clone , Serialize , Deserialize , JsonSchema ) ]
59+ #[ derive( Debug , Clone , Serialize , Deserialize , PartialEq , Eq , JsonSchema ) ]
5360pub struct TipsetHeight {
5461 pub at : ChainEpoch ,
5562 pub previous : bool ,
@@ -83,7 +90,7 @@ impl TipsetHeight {
8390 }
8491}
8592
86- #[ derive( Debug , Clone , Serialize , Deserialize , JsonSchema ) ]
93+ #[ derive( Debug , Clone , Serialize , Deserialize , PartialEq , Eq , JsonSchema ) ]
8794pub struct TipsetAnchor {
8895 #[ serde( with = "crate::lotus_json" ) ]
8996 #[ schemars( with = "LotusJson<TipsetKey>" ) ]
@@ -109,9 +116,19 @@ impl TipsetAnchor {
109116}
110117
111118#[ derive(
112- Debug , Clone , Copy , strum:: Display , strum:: EnumString , Serialize , Deserialize , JsonSchema ,
119+ Debug ,
120+ Clone ,
121+ Copy ,
122+ strum:: Display ,
123+ strum:: EnumString ,
124+ Serialize ,
125+ Deserialize ,
126+ PartialEq ,
127+ Eq ,
128+ JsonSchema ,
113129) ]
114130#[ strum( serialize_all = "lowercase" ) ]
131+ #[ serde( rename_all = "lowercase" ) ]
115132pub enum TipsetTag {
116133 Latest ,
117134 Finalized ,
0 commit comments