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    /// Non-refundable on-chain request fee retained when a submitted trading withdrawal fails.
180    TRADING_WITHDRAW_REQUEST_FEE = 1065i32,
181}
182impl TransferCode {
183    ///Idiomatic alias for [`Self::TRANSFER_CODE_UNSPECIFIED`]; `Debug` prints the variant name.
184    #[allow(non_upper_case_globals)]
185    pub const TransferCodeUnspecified: Self = Self::TRANSFER_CODE_UNSPECIFIED;
186    ///Idiomatic alias for [`Self::DEPOSIT`]; `Debug` prints the variant name.
187    #[allow(non_upper_case_globals)]
188    pub const Deposit: Self = Self::DEPOSIT;
189    ///Idiomatic alias for [`Self::WITHDRAW`]; `Debug` prints the variant name.
190    #[allow(non_upper_case_globals)]
191    pub const Withdraw: Self = Self::WITHDRAW;
192    ///Idiomatic alias for [`Self::MAKER_FEE`]; `Debug` prints the variant name.
193    #[allow(non_upper_case_globals)]
194    pub const MakerFee: Self = Self::MAKER_FEE;
195    ///Idiomatic alias for [`Self::TAKER_FEE`]; `Debug` prints the variant name.
196    #[allow(non_upper_case_globals)]
197    pub const TakerFee: Self = Self::TAKER_FEE;
198    ///Idiomatic alias for [`Self::INTERNAL_TRANSFER`]; `Debug` prints the variant name.
199    #[allow(non_upper_case_globals)]
200    pub const InternalTransfer: Self = Self::INTERNAL_TRANSFER;
201    ///Idiomatic alias for [`Self::TRADE_BASE`]; `Debug` prints the variant name.
202    #[allow(non_upper_case_globals)]
203    pub const TradeBase: Self = Self::TRADE_BASE;
204    ///Idiomatic alias for [`Self::TRADE_QUOTE`]; `Debug` prints the variant name.
205    #[allow(non_upper_case_globals)]
206    pub const TradeQuote: Self = Self::TRADE_QUOTE;
207    ///Idiomatic alias for [`Self::REBATE`]; `Debug` prints the variant name.
208    #[allow(non_upper_case_globals)]
209    pub const Rebate: Self = Self::REBATE;
210    ///Idiomatic alias for [`Self::FUNDING_TO_TRADING`]; `Debug` prints the variant name.
211    #[allow(non_upper_case_globals)]
212    pub const FundingToTrading: Self = Self::FUNDING_TO_TRADING;
213    ///Idiomatic alias for [`Self::TRADING_TO_FUNDING`]; `Debug` prints the variant name.
214    #[allow(non_upper_case_globals)]
215    pub const TradingToFunding: Self = Self::TRADING_TO_FUNDING;
216    ///Idiomatic alias for [`Self::TRADING_WITHDRAW_RESERVE`]; `Debug` prints the variant name.
217    #[allow(non_upper_case_globals)]
218    pub const TradingWithdrawReserve: Self = Self::TRADING_WITHDRAW_RESERVE;
219    ///Idiomatic alias for [`Self::FUNDING_USER_TRANSFER`]; `Debug` prints the variant name.
220    #[allow(non_upper_case_globals)]
221    pub const FundingUserTransfer: Self = Self::FUNDING_USER_TRANSFER;
222    ///Idiomatic alias for [`Self::TRADING_WITHDRAW_REQUEST_FEE`]; `Debug` prints the variant name.
223    #[allow(non_upper_case_globals)]
224    pub const TradingWithdrawRequestFee: Self = Self::TRADING_WITHDRAW_REQUEST_FEE;
225}
226impl ::core::default::Default for TransferCode {
227    fn default() -> Self {
228        Self::TRANSFER_CODE_UNSPECIFIED
229    }
230}
231impl ::serde::Serialize for TransferCode {
232    fn serialize<S: ::serde::Serializer>(
233        &self,
234        s: S,
235    ) -> ::core::result::Result<S::Ok, S::Error> {
236        s.serialize_str(::buffa::Enumeration::proto_name(self))
237    }
238}
239impl<'de> ::serde::Deserialize<'de> for TransferCode {
240    fn deserialize<D: ::serde::Deserializer<'de>>(
241        d: D,
242    ) -> ::core::result::Result<Self, D::Error> {
243        struct _V;
244        impl ::serde::de::Visitor<'_> for _V {
245            type Value = TransferCode;
246            fn expecting(
247                &self,
248                f: &mut ::core::fmt::Formatter<'_>,
249            ) -> ::core::fmt::Result {
250                f.write_str(
251                    concat!("a string, integer, or null for ", stringify!(TransferCode)),
252                )
253            }
254            fn visit_str<E: ::serde::de::Error>(
255                self,
256                v: &str,
257            ) -> ::core::result::Result<TransferCode, E> {
258                <TransferCode as ::buffa::Enumeration>::from_proto_name(v)
259                    .ok_or_else(|| { ::serde::de::Error::unknown_variant(v, &[]) })
260            }
261            fn visit_i64<E: ::serde::de::Error>(
262                self,
263                v: i64,
264            ) -> ::core::result::Result<TransferCode, E> {
265                let v32 = i32::try_from(v)
266                    .map_err(|_| {
267                        ::serde::de::Error::custom(
268                            ::buffa::alloc::format!("enum value {v} out of i32 range"),
269                        )
270                    })?;
271                <TransferCode as ::buffa::Enumeration>::from_i32(v32)
272                    .ok_or_else(|| {
273                        ::serde::de::Error::custom(
274                            ::buffa::alloc::format!("unknown enum value {v32}"),
275                        )
276                    })
277            }
278            fn visit_u64<E: ::serde::de::Error>(
279                self,
280                v: u64,
281            ) -> ::core::result::Result<TransferCode, E> {
282                let v32 = i32::try_from(v)
283                    .map_err(|_| {
284                        ::serde::de::Error::custom(
285                            ::buffa::alloc::format!("enum value {v} out of i32 range"),
286                        )
287                    })?;
288                <TransferCode as ::buffa::Enumeration>::from_i32(v32)
289                    .ok_or_else(|| {
290                        ::serde::de::Error::custom(
291                            ::buffa::alloc::format!("unknown enum value {v32}"),
292                        )
293                    })
294            }
295            fn visit_unit<E: ::serde::de::Error>(
296                self,
297            ) -> ::core::result::Result<TransferCode, E> {
298                ::core::result::Result::Ok(::core::default::Default::default())
299            }
300        }
301        d.deserialize_any(_V)
302    }
303}
304impl ::buffa::json_helpers::ProtoElemJson for TransferCode {
305    fn serialize_proto_json<S: ::serde::Serializer>(
306        v: &Self,
307        s: S,
308    ) -> ::core::result::Result<S::Ok, S::Error> {
309        ::serde::Serialize::serialize(v, s)
310    }
311    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
312        d: D,
313    ) -> ::core::result::Result<Self, D::Error> {
314        <Self as ::serde::Deserialize>::deserialize(d)
315    }
316}
317impl ::buffa::Enumeration for TransferCode {
318    fn from_i32(value: i32) -> ::core::option::Option<Self> {
319        match value {
320            0i32 => ::core::option::Option::Some(Self::TRANSFER_CODE_UNSPECIFIED),
321            1000i32 => ::core::option::Option::Some(Self::DEPOSIT),
322            1001i32 => ::core::option::Option::Some(Self::WITHDRAW),
323            1010i32 => ::core::option::Option::Some(Self::MAKER_FEE),
324            1011i32 => ::core::option::Option::Some(Self::TAKER_FEE),
325            1030i32 => ::core::option::Option::Some(Self::INTERNAL_TRANSFER),
326            1031i32 => ::core::option::Option::Some(Self::TRADE_BASE),
327            1032i32 => ::core::option::Option::Some(Self::TRADE_QUOTE),
328            1041i32 => ::core::option::Option::Some(Self::REBATE),
329            1060i32 => ::core::option::Option::Some(Self::FUNDING_TO_TRADING),
330            1061i32 => ::core::option::Option::Some(Self::TRADING_TO_FUNDING),
331            1062i32 => ::core::option::Option::Some(Self::TRADING_WITHDRAW_RESERVE),
332            1063i32 => ::core::option::Option::Some(Self::FUNDING_USER_TRANSFER),
333            1065i32 => ::core::option::Option::Some(Self::TRADING_WITHDRAW_REQUEST_FEE),
334            _ => ::core::option::Option::None,
335        }
336    }
337    fn to_i32(&self) -> i32 {
338        *self as i32
339    }
340    fn proto_name(&self) -> &'static str {
341        match self {
342            Self::TRANSFER_CODE_UNSPECIFIED => "TRANSFER_CODE_UNSPECIFIED",
343            Self::DEPOSIT => "DEPOSIT",
344            Self::WITHDRAW => "WITHDRAW",
345            Self::MAKER_FEE => "MAKER_FEE",
346            Self::TAKER_FEE => "TAKER_FEE",
347            Self::INTERNAL_TRANSFER => "INTERNAL_TRANSFER",
348            Self::TRADE_BASE => "TRADE_BASE",
349            Self::TRADE_QUOTE => "TRADE_QUOTE",
350            Self::REBATE => "REBATE",
351            Self::FUNDING_TO_TRADING => "FUNDING_TO_TRADING",
352            Self::TRADING_TO_FUNDING => "TRADING_TO_FUNDING",
353            Self::TRADING_WITHDRAW_RESERVE => "TRADING_WITHDRAW_RESERVE",
354            Self::FUNDING_USER_TRANSFER => "FUNDING_USER_TRANSFER",
355            Self::TRADING_WITHDRAW_REQUEST_FEE => "TRADING_WITHDRAW_REQUEST_FEE",
356        }
357    }
358    fn from_proto_name(name: &str) -> ::core::option::Option<Self> {
359        match name {
360            "TRANSFER_CODE_UNSPECIFIED" => {
361                ::core::option::Option::Some(Self::TRANSFER_CODE_UNSPECIFIED)
362            }
363            "DEPOSIT" => ::core::option::Option::Some(Self::DEPOSIT),
364            "WITHDRAW" => ::core::option::Option::Some(Self::WITHDRAW),
365            "MAKER_FEE" => ::core::option::Option::Some(Self::MAKER_FEE),
366            "TAKER_FEE" => ::core::option::Option::Some(Self::TAKER_FEE),
367            "INTERNAL_TRANSFER" => ::core::option::Option::Some(Self::INTERNAL_TRANSFER),
368            "TRADE_BASE" => ::core::option::Option::Some(Self::TRADE_BASE),
369            "TRADE_QUOTE" => ::core::option::Option::Some(Self::TRADE_QUOTE),
370            "REBATE" => ::core::option::Option::Some(Self::REBATE),
371            "FUNDING_TO_TRADING" => {
372                ::core::option::Option::Some(Self::FUNDING_TO_TRADING)
373            }
374            "TRADING_TO_FUNDING" => {
375                ::core::option::Option::Some(Self::TRADING_TO_FUNDING)
376            }
377            "TRADING_WITHDRAW_RESERVE" => {
378                ::core::option::Option::Some(Self::TRADING_WITHDRAW_RESERVE)
379            }
380            "FUNDING_USER_TRANSFER" => {
381                ::core::option::Option::Some(Self::FUNDING_USER_TRANSFER)
382            }
383            "TRADING_WITHDRAW_REQUEST_FEE" => {
384                ::core::option::Option::Some(Self::TRADING_WITHDRAW_REQUEST_FEE)
385            }
386            _ => ::core::option::Option::None,
387        }
388    }
389    fn values() -> &'static [Self] {
390        &[
391            Self::TRANSFER_CODE_UNSPECIFIED,
392            Self::DEPOSIT,
393            Self::WITHDRAW,
394            Self::MAKER_FEE,
395            Self::TAKER_FEE,
396            Self::INTERNAL_TRANSFER,
397            Self::TRADE_BASE,
398            Self::TRADE_QUOTE,
399            Self::REBATE,
400            Self::FUNDING_TO_TRADING,
401            Self::TRADING_TO_FUNDING,
402            Self::TRADING_WITHDRAW_RESERVE,
403            Self::FUNDING_USER_TRANSFER,
404            Self::TRADING_WITHDRAW_REQUEST_FEE,
405        ]
406    }
407}