Skip to main content

polyester/gen/buffa/
ledger.v1.rs

1// @generated by buffa-codegen. DO NOT EDIT.
2
3/// AccountCode identifies the ledger account bucket affected by a transfer.
4#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug)]
5#[repr(i32)]
6pub enum AccountCode {
7    /// Account bucket was not specified.
8    ACCOUNT_CODE_UNSPECIFIED = 0i32,
9    /// User funding bucket.
10    FUNDING = 300i32,
11    /// User trading bucket.
12    TRADING = 301i32,
13}
14impl AccountCode {
15    ///Idiomatic alias for [`Self::ACCOUNT_CODE_UNSPECIFIED`]; `Debug` prints the variant name.
16    #[allow(non_upper_case_globals)]
17    pub const AccountCodeUnspecified: Self = Self::ACCOUNT_CODE_UNSPECIFIED;
18    ///Idiomatic alias for [`Self::FUNDING`]; `Debug` prints the variant name.
19    #[allow(non_upper_case_globals)]
20    pub const Funding: Self = Self::FUNDING;
21    ///Idiomatic alias for [`Self::TRADING`]; `Debug` prints the variant name.
22    #[allow(non_upper_case_globals)]
23    pub const Trading: Self = Self::TRADING;
24}
25impl ::core::default::Default for AccountCode {
26    fn default() -> Self {
27        Self::ACCOUNT_CODE_UNSPECIFIED
28    }
29}
30impl ::serde::Serialize for AccountCode {
31    fn serialize<S: ::serde::Serializer>(
32        &self,
33        s: S,
34    ) -> ::core::result::Result<S::Ok, S::Error> {
35        s.serialize_str(::buffa::Enumeration::proto_name(self))
36    }
37}
38impl<'de> ::serde::Deserialize<'de> for AccountCode {
39    fn deserialize<D: ::serde::Deserializer<'de>>(
40        d: D,
41    ) -> ::core::result::Result<Self, D::Error> {
42        struct _V;
43        impl ::serde::de::Visitor<'_> for _V {
44            type Value = AccountCode;
45            fn expecting(
46                &self,
47                f: &mut ::core::fmt::Formatter<'_>,
48            ) -> ::core::fmt::Result {
49                f.write_str(
50                    concat!("a string, integer, or null for ", stringify!(AccountCode)),
51                )
52            }
53            fn visit_str<E: ::serde::de::Error>(
54                self,
55                v: &str,
56            ) -> ::core::result::Result<AccountCode, E> {
57                <AccountCode as ::buffa::Enumeration>::from_proto_name(v)
58                    .ok_or_else(|| { ::serde::de::Error::unknown_variant(v, &[]) })
59            }
60            fn visit_i64<E: ::serde::de::Error>(
61                self,
62                v: i64,
63            ) -> ::core::result::Result<AccountCode, E> {
64                let v32 = i32::try_from(v)
65                    .map_err(|_| {
66                        ::serde::de::Error::custom(
67                            ::buffa::alloc::format!("enum value {v} out of i32 range"),
68                        )
69                    })?;
70                <AccountCode as ::buffa::Enumeration>::from_i32(v32)
71                    .ok_or_else(|| {
72                        ::serde::de::Error::custom(
73                            ::buffa::alloc::format!("unknown enum value {v32}"),
74                        )
75                    })
76            }
77            fn visit_u64<E: ::serde::de::Error>(
78                self,
79                v: u64,
80            ) -> ::core::result::Result<AccountCode, E> {
81                let v32 = i32::try_from(v)
82                    .map_err(|_| {
83                        ::serde::de::Error::custom(
84                            ::buffa::alloc::format!("enum value {v} out of i32 range"),
85                        )
86                    })?;
87                <AccountCode as ::buffa::Enumeration>::from_i32(v32)
88                    .ok_or_else(|| {
89                        ::serde::de::Error::custom(
90                            ::buffa::alloc::format!("unknown enum value {v32}"),
91                        )
92                    })
93            }
94            fn visit_unit<E: ::serde::de::Error>(
95                self,
96            ) -> ::core::result::Result<AccountCode, E> {
97                ::core::result::Result::Ok(::core::default::Default::default())
98            }
99        }
100        d.deserialize_any(_V)
101    }
102}
103impl ::buffa::json_helpers::ProtoElemJson for AccountCode {
104    fn serialize_proto_json<S: ::serde::Serializer>(
105        v: &Self,
106        s: S,
107    ) -> ::core::result::Result<S::Ok, S::Error> {
108        ::serde::Serialize::serialize(v, s)
109    }
110    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
111        d: D,
112    ) -> ::core::result::Result<Self, D::Error> {
113        <Self as ::serde::Deserialize>::deserialize(d)
114    }
115}
116impl ::buffa::Enumeration for AccountCode {
117    fn from_i32(value: i32) -> ::core::option::Option<Self> {
118        match value {
119            0i32 => ::core::option::Option::Some(Self::ACCOUNT_CODE_UNSPECIFIED),
120            300i32 => ::core::option::Option::Some(Self::FUNDING),
121            301i32 => ::core::option::Option::Some(Self::TRADING),
122            _ => ::core::option::Option::None,
123        }
124    }
125    fn to_i32(&self) -> i32 {
126        *self as i32
127    }
128    fn proto_name(&self) -> &'static str {
129        match self {
130            Self::ACCOUNT_CODE_UNSPECIFIED => "ACCOUNT_CODE_UNSPECIFIED",
131            Self::FUNDING => "FUNDING",
132            Self::TRADING => "TRADING",
133        }
134    }
135    fn from_proto_name(name: &str) -> ::core::option::Option<Self> {
136        match name {
137            "ACCOUNT_CODE_UNSPECIFIED" => {
138                ::core::option::Option::Some(Self::ACCOUNT_CODE_UNSPECIFIED)
139            }
140            "FUNDING" => ::core::option::Option::Some(Self::FUNDING),
141            "TRADING" => ::core::option::Option::Some(Self::TRADING),
142            _ => ::core::option::Option::None,
143        }
144    }
145    fn values() -> &'static [Self] {
146        &[Self::ACCOUNT_CODE_UNSPECIFIED, Self::FUNDING, Self::TRADING]
147    }
148}
149/// TransferCode identifies the product reason for a transfer.
150#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug)]
151#[repr(i32)]
152pub enum TransferCode {
153    /// Transfer reason was not specified.
154    TRANSFER_CODE_UNSPECIFIED = 0i32,
155    /// External deposit into a funding account.
156    DEPOSIT = 1000i32,
157    /// External withdrawal from a funding account.
158    WITHDRAW = 1001i32,
159    /// Maker fee charged for a trade.
160    MAKER_FEE = 1010i32,
161    /// Taker fee charged for a trade.
162    TAKER_FEE = 1011i32,
163    /// Internal account transfer.
164    INTERNAL_TRANSFER = 1030i32,
165    /// Spot trade base-asset leg.
166    TRADE_BASE = 1031i32,
167    /// Spot trade quote-asset leg.
168    TRADE_QUOTE = 1032i32,
169    /// Rebate transfer.
170    REBATE = 1041i32,
171    /// Funding-to-trading user bucket transfer.
172    FUNDING_TO_TRADING = 1060i32,
173    /// Trading-to-funding user bucket transfer.
174    TRADING_TO_FUNDING = 1061i32,
175    /// Reserve leg for a trading withdrawal.
176    TRADING_WITHDRAW_RESERVE = 1062i32,
177    /// Funding user-to-user transfer.
178    FUNDING_USER_TRANSFER = 1063i32,
179}
180impl TransferCode {
181    ///Idiomatic alias for [`Self::TRANSFER_CODE_UNSPECIFIED`]; `Debug` prints the variant name.
182    #[allow(non_upper_case_globals)]
183    pub const TransferCodeUnspecified: Self = Self::TRANSFER_CODE_UNSPECIFIED;
184    ///Idiomatic alias for [`Self::DEPOSIT`]; `Debug` prints the variant name.
185    #[allow(non_upper_case_globals)]
186    pub const Deposit: Self = Self::DEPOSIT;
187    ///Idiomatic alias for [`Self::WITHDRAW`]; `Debug` prints the variant name.
188    #[allow(non_upper_case_globals)]
189    pub const Withdraw: Self = Self::WITHDRAW;
190    ///Idiomatic alias for [`Self::MAKER_FEE`]; `Debug` prints the variant name.
191    #[allow(non_upper_case_globals)]
192    pub const MakerFee: Self = Self::MAKER_FEE;
193    ///Idiomatic alias for [`Self::TAKER_FEE`]; `Debug` prints the variant name.
194    #[allow(non_upper_case_globals)]
195    pub const TakerFee: Self = Self::TAKER_FEE;
196    ///Idiomatic alias for [`Self::INTERNAL_TRANSFER`]; `Debug` prints the variant name.
197    #[allow(non_upper_case_globals)]
198    pub const InternalTransfer: Self = Self::INTERNAL_TRANSFER;
199    ///Idiomatic alias for [`Self::TRADE_BASE`]; `Debug` prints the variant name.
200    #[allow(non_upper_case_globals)]
201    pub const TradeBase: Self = Self::TRADE_BASE;
202    ///Idiomatic alias for [`Self::TRADE_QUOTE`]; `Debug` prints the variant name.
203    #[allow(non_upper_case_globals)]
204    pub const TradeQuote: Self = Self::TRADE_QUOTE;
205    ///Idiomatic alias for [`Self::REBATE`]; `Debug` prints the variant name.
206    #[allow(non_upper_case_globals)]
207    pub const Rebate: Self = Self::REBATE;
208    ///Idiomatic alias for [`Self::FUNDING_TO_TRADING`]; `Debug` prints the variant name.
209    #[allow(non_upper_case_globals)]
210    pub const FundingToTrading: Self = Self::FUNDING_TO_TRADING;
211    ///Idiomatic alias for [`Self::TRADING_TO_FUNDING`]; `Debug` prints the variant name.
212    #[allow(non_upper_case_globals)]
213    pub const TradingToFunding: Self = Self::TRADING_TO_FUNDING;
214    ///Idiomatic alias for [`Self::TRADING_WITHDRAW_RESERVE`]; `Debug` prints the variant name.
215    #[allow(non_upper_case_globals)]
216    pub const TradingWithdrawReserve: Self = Self::TRADING_WITHDRAW_RESERVE;
217    ///Idiomatic alias for [`Self::FUNDING_USER_TRANSFER`]; `Debug` prints the variant name.
218    #[allow(non_upper_case_globals)]
219    pub const FundingUserTransfer: Self = Self::FUNDING_USER_TRANSFER;
220}
221impl ::core::default::Default for TransferCode {
222    fn default() -> Self {
223        Self::TRANSFER_CODE_UNSPECIFIED
224    }
225}
226impl ::serde::Serialize for TransferCode {
227    fn serialize<S: ::serde::Serializer>(
228        &self,
229        s: S,
230    ) -> ::core::result::Result<S::Ok, S::Error> {
231        s.serialize_str(::buffa::Enumeration::proto_name(self))
232    }
233}
234impl<'de> ::serde::Deserialize<'de> for TransferCode {
235    fn deserialize<D: ::serde::Deserializer<'de>>(
236        d: D,
237    ) -> ::core::result::Result<Self, D::Error> {
238        struct _V;
239        impl ::serde::de::Visitor<'_> for _V {
240            type Value = TransferCode;
241            fn expecting(
242                &self,
243                f: &mut ::core::fmt::Formatter<'_>,
244            ) -> ::core::fmt::Result {
245                f.write_str(
246                    concat!("a string, integer, or null for ", stringify!(TransferCode)),
247                )
248            }
249            fn visit_str<E: ::serde::de::Error>(
250                self,
251                v: &str,
252            ) -> ::core::result::Result<TransferCode, E> {
253                <TransferCode as ::buffa::Enumeration>::from_proto_name(v)
254                    .ok_or_else(|| { ::serde::de::Error::unknown_variant(v, &[]) })
255            }
256            fn visit_i64<E: ::serde::de::Error>(
257                self,
258                v: i64,
259            ) -> ::core::result::Result<TransferCode, E> {
260                let v32 = i32::try_from(v)
261                    .map_err(|_| {
262                        ::serde::de::Error::custom(
263                            ::buffa::alloc::format!("enum value {v} out of i32 range"),
264                        )
265                    })?;
266                <TransferCode as ::buffa::Enumeration>::from_i32(v32)
267                    .ok_or_else(|| {
268                        ::serde::de::Error::custom(
269                            ::buffa::alloc::format!("unknown enum value {v32}"),
270                        )
271                    })
272            }
273            fn visit_u64<E: ::serde::de::Error>(
274                self,
275                v: u64,
276            ) -> ::core::result::Result<TransferCode, E> {
277                let v32 = i32::try_from(v)
278                    .map_err(|_| {
279                        ::serde::de::Error::custom(
280                            ::buffa::alloc::format!("enum value {v} out of i32 range"),
281                        )
282                    })?;
283                <TransferCode as ::buffa::Enumeration>::from_i32(v32)
284                    .ok_or_else(|| {
285                        ::serde::de::Error::custom(
286                            ::buffa::alloc::format!("unknown enum value {v32}"),
287                        )
288                    })
289            }
290            fn visit_unit<E: ::serde::de::Error>(
291                self,
292            ) -> ::core::result::Result<TransferCode, E> {
293                ::core::result::Result::Ok(::core::default::Default::default())
294            }
295        }
296        d.deserialize_any(_V)
297    }
298}
299impl ::buffa::json_helpers::ProtoElemJson for TransferCode {
300    fn serialize_proto_json<S: ::serde::Serializer>(
301        v: &Self,
302        s: S,
303    ) -> ::core::result::Result<S::Ok, S::Error> {
304        ::serde::Serialize::serialize(v, s)
305    }
306    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
307        d: D,
308    ) -> ::core::result::Result<Self, D::Error> {
309        <Self as ::serde::Deserialize>::deserialize(d)
310    }
311}
312impl ::buffa::Enumeration for TransferCode {
313    fn from_i32(value: i32) -> ::core::option::Option<Self> {
314        match value {
315            0i32 => ::core::option::Option::Some(Self::TRANSFER_CODE_UNSPECIFIED),
316            1000i32 => ::core::option::Option::Some(Self::DEPOSIT),
317            1001i32 => ::core::option::Option::Some(Self::WITHDRAW),
318            1010i32 => ::core::option::Option::Some(Self::MAKER_FEE),
319            1011i32 => ::core::option::Option::Some(Self::TAKER_FEE),
320            1030i32 => ::core::option::Option::Some(Self::INTERNAL_TRANSFER),
321            1031i32 => ::core::option::Option::Some(Self::TRADE_BASE),
322            1032i32 => ::core::option::Option::Some(Self::TRADE_QUOTE),
323            1041i32 => ::core::option::Option::Some(Self::REBATE),
324            1060i32 => ::core::option::Option::Some(Self::FUNDING_TO_TRADING),
325            1061i32 => ::core::option::Option::Some(Self::TRADING_TO_FUNDING),
326            1062i32 => ::core::option::Option::Some(Self::TRADING_WITHDRAW_RESERVE),
327            1063i32 => ::core::option::Option::Some(Self::FUNDING_USER_TRANSFER),
328            _ => ::core::option::Option::None,
329        }
330    }
331    fn to_i32(&self) -> i32 {
332        *self as i32
333    }
334    fn proto_name(&self) -> &'static str {
335        match self {
336            Self::TRANSFER_CODE_UNSPECIFIED => "TRANSFER_CODE_UNSPECIFIED",
337            Self::DEPOSIT => "DEPOSIT",
338            Self::WITHDRAW => "WITHDRAW",
339            Self::MAKER_FEE => "MAKER_FEE",
340            Self::TAKER_FEE => "TAKER_FEE",
341            Self::INTERNAL_TRANSFER => "INTERNAL_TRANSFER",
342            Self::TRADE_BASE => "TRADE_BASE",
343            Self::TRADE_QUOTE => "TRADE_QUOTE",
344            Self::REBATE => "REBATE",
345            Self::FUNDING_TO_TRADING => "FUNDING_TO_TRADING",
346            Self::TRADING_TO_FUNDING => "TRADING_TO_FUNDING",
347            Self::TRADING_WITHDRAW_RESERVE => "TRADING_WITHDRAW_RESERVE",
348            Self::FUNDING_USER_TRANSFER => "FUNDING_USER_TRANSFER",
349        }
350    }
351    fn from_proto_name(name: &str) -> ::core::option::Option<Self> {
352        match name {
353            "TRANSFER_CODE_UNSPECIFIED" => {
354                ::core::option::Option::Some(Self::TRANSFER_CODE_UNSPECIFIED)
355            }
356            "DEPOSIT" => ::core::option::Option::Some(Self::DEPOSIT),
357            "WITHDRAW" => ::core::option::Option::Some(Self::WITHDRAW),
358            "MAKER_FEE" => ::core::option::Option::Some(Self::MAKER_FEE),
359            "TAKER_FEE" => ::core::option::Option::Some(Self::TAKER_FEE),
360            "INTERNAL_TRANSFER" => ::core::option::Option::Some(Self::INTERNAL_TRANSFER),
361            "TRADE_BASE" => ::core::option::Option::Some(Self::TRADE_BASE),
362            "TRADE_QUOTE" => ::core::option::Option::Some(Self::TRADE_QUOTE),
363            "REBATE" => ::core::option::Option::Some(Self::REBATE),
364            "FUNDING_TO_TRADING" => {
365                ::core::option::Option::Some(Self::FUNDING_TO_TRADING)
366            }
367            "TRADING_TO_FUNDING" => {
368                ::core::option::Option::Some(Self::TRADING_TO_FUNDING)
369            }
370            "TRADING_WITHDRAW_RESERVE" => {
371                ::core::option::Option::Some(Self::TRADING_WITHDRAW_RESERVE)
372            }
373            "FUNDING_USER_TRANSFER" => {
374                ::core::option::Option::Some(Self::FUNDING_USER_TRANSFER)
375            }
376            _ => ::core::option::Option::None,
377        }
378    }
379    fn values() -> &'static [Self] {
380        &[
381            Self::TRANSFER_CODE_UNSPECIFIED,
382            Self::DEPOSIT,
383            Self::WITHDRAW,
384            Self::MAKER_FEE,
385            Self::TAKER_FEE,
386            Self::INTERNAL_TRANSFER,
387            Self::TRADE_BASE,
388            Self::TRADE_QUOTE,
389            Self::REBATE,
390            Self::FUNDING_TO_TRADING,
391            Self::TRADING_TO_FUNDING,
392            Self::TRADING_WITHDRAW_RESERVE,
393            Self::FUNDING_USER_TRANSFER,
394        ]
395    }
396}