@@ -34,7 +34,7 @@ pub const PROD_ATTR_SIZE : usize = PROD_ACCT_SIZE - PROD_HDR_SIZE;
34
34
pub const MAX_SLOT_DIFFERENCE : u64 = 25 ;
35
35
36
36
/// The type of Pyth account determines what data it contains
37
- #[ derive( Copy , Clone ) ]
37
+ #[ derive( Copy , Clone , Debug , PartialEq , Eq , BorshSerialize , BorshDeserialize , serde :: Serialize , serde :: Deserialize ) ]
38
38
#[ repr( C ) ]
39
39
pub enum AccountType
40
40
{
@@ -44,8 +44,14 @@ pub enum AccountType
44
44
Price
45
45
}
46
46
47
+ impl Default for AccountType {
48
+ fn default ( ) -> Self {
49
+ AccountType :: Unknown
50
+ }
51
+ }
52
+
47
53
/// The current status of a price feed.
48
- #[ derive( Copy , Clone , PartialEq , BorshSerialize , BorshDeserialize , Debug ) ]
54
+ #[ derive( Copy , Clone , Debug , PartialEq , Eq , BorshSerialize , BorshDeserialize , serde :: Serialize , serde :: Deserialize ) ]
49
55
#[ repr( C ) ]
50
56
pub enum PriceStatus
51
57
{
@@ -59,34 +65,52 @@ pub enum PriceStatus
59
65
Auction
60
66
}
61
67
68
+ impl Default for PriceStatus {
69
+ fn default ( ) -> Self {
70
+ PriceStatus :: Unknown
71
+ }
72
+ }
73
+
62
74
/// Status of any ongoing corporate actions.
63
75
/// (still undergoing dev)
64
- #[ derive( Copy , Clone , PartialEq ) ]
76
+ #[ derive( Copy , Clone , Debug , PartialEq , Eq , BorshSerialize , BorshDeserialize , serde :: Serialize , serde :: Deserialize ) ]
65
77
#[ repr( C ) ]
66
78
pub enum CorpAction
67
79
{
68
80
NoCorpAct
69
81
}
70
82
83
+ impl Default for CorpAction {
84
+ fn default ( ) -> Self {
85
+ CorpAction :: NoCorpAct
86
+ }
87
+ }
88
+
71
89
/// The type of prices associated with a product -- each product may have multiple price feeds of different types.
72
- #[ derive( Copy , Clone , PartialEq ) ]
90
+ #[ derive( Copy , Clone , Debug , PartialEq , Eq , BorshSerialize , BorshDeserialize , serde :: Serialize , serde :: Deserialize ) ]
73
91
#[ repr( C ) ]
74
92
pub enum PriceType
75
93
{
76
94
Unknown ,
77
95
Price
78
96
}
79
97
98
+ impl Default for PriceType {
99
+ fn default ( ) -> Self {
100
+ PriceType :: Unknown
101
+ }
102
+ }
103
+
80
104
/// Public key of a Solana account
81
- #[ derive( Copy , Clone ) ]
105
+ #[ derive( Copy , Clone , Debug , Default , PartialEq , Eq , BorshSerialize , BorshDeserialize , serde :: Serialize , serde :: Deserialize ) ]
82
106
#[ repr( C ) ]
83
107
pub struct AccKey
84
108
{
85
109
pub val : [ u8 ; 32 ]
86
110
}
87
111
88
112
/// Mapping accounts form a linked-list containing the listing of all products on Pyth.
89
- #[ derive( Copy , Clone ) ]
113
+ #[ derive( Copy , Clone , Debug , PartialEq , Eq ) ]
90
114
#[ repr( C ) ]
91
115
pub struct Mapping
92
116
{
@@ -115,7 +139,7 @@ unsafe impl Pod for Mapping {}
115
139
116
140
/// Product accounts contain metadata for a single product, such as its symbol ("Crypto.BTC/USD")
117
141
/// and its base/quote currencies.
118
- #[ derive( Copy , Clone ) ]
142
+ #[ derive( Copy , Clone , Debug , PartialEq , Eq ) ]
119
143
#[ repr( C ) ]
120
144
pub struct Product
121
145
{
@@ -147,7 +171,7 @@ unsafe impl Pod for Product {}
147
171
148
172
/// A price and confidence at a specific slot. This struct can represent either a
149
173
/// publisher's contribution or the outcome of price aggregation.
150
- #[ derive( Copy , Clone ) ]
174
+ #[ derive( Copy , Clone , Debug , Default , PartialEq , Eq , BorshSerialize , BorshDeserialize , serde :: Serialize , serde :: Deserialize ) ]
151
175
#[ repr( C ) ]
152
176
pub struct PriceInfo
153
177
{
@@ -167,7 +191,7 @@ pub struct PriceInfo
167
191
}
168
192
169
193
/// The price and confidence contributed by a specific publisher.
170
- #[ derive( Copy , Clone ) ]
194
+ #[ derive( Copy , Clone , Debug , Default , PartialEq , Eq , BorshSerialize , BorshDeserialize , serde :: Serialize , serde :: Deserialize ) ]
171
195
#[ repr( C ) ]
172
196
pub struct PriceComp
173
197
{
@@ -182,7 +206,7 @@ pub struct PriceComp
182
206
}
183
207
184
208
/// An exponentially-weighted moving average.
185
- #[ derive( Copy , Clone ) ]
209
+ #[ derive( Copy , Clone , Debug , Default , PartialEq , Eq , BorshSerialize , BorshDeserialize , serde :: Serialize , serde :: Deserialize ) ]
186
210
#[ repr( C ) ]
187
211
pub struct Ema
188
212
{
@@ -195,7 +219,7 @@ pub struct Ema
195
219
}
196
220
197
221
/// Price accounts represent a continuously-updating price feed for a product.
198
- #[ derive( Copy , Clone ) ]
222
+ #[ derive( Copy , Clone , Debug , Default , PartialEq , Eq ) ]
199
223
#[ repr( C ) ]
200
224
pub struct Price
201
225
{
@@ -332,7 +356,7 @@ impl Price {
332
356
}
333
357
}
334
358
335
- #[ derive( Copy , Clone ) ]
359
+ #[ derive( Copy , Clone , Debug , Default , PartialEq , Eq , serde :: Serialize , serde :: Deserialize ) ]
336
360
struct AccKeyU64
337
361
{
338
362
pub val : [ u64 ; 4 ]
0 commit comments