polyester-sdk 0.1.0-alpha.27

Official Rust SDK for Polyester APIs.
Documentation
// @generated by buffa-codegen. DO NOT EDIT.

/// AccountCode identifies the ledger account bucket affected by a transfer.
#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug)]
#[repr(i32)]
pub enum AccountCode {
    /// Account bucket was not specified.
    ACCOUNT_CODE_UNSPECIFIED = 0i32,
    /// User funding bucket.
    FUNDING = 300i32,
    /// User trading bucket.
    TRADING = 301i32,
}
impl AccountCode {
    ///Idiomatic alias for [`Self::ACCOUNT_CODE_UNSPECIFIED`]; `Debug` prints the variant name.
    #[allow(non_upper_case_globals)]
    pub const AccountCodeUnspecified: Self = Self::ACCOUNT_CODE_UNSPECIFIED;
    ///Idiomatic alias for [`Self::FUNDING`]; `Debug` prints the variant name.
    #[allow(non_upper_case_globals)]
    pub const Funding: Self = Self::FUNDING;
    ///Idiomatic alias for [`Self::TRADING`]; `Debug` prints the variant name.
    #[allow(non_upper_case_globals)]
    pub const Trading: Self = Self::TRADING;
}
impl ::core::default::Default for AccountCode {
    fn default() -> Self {
        Self::ACCOUNT_CODE_UNSPECIFIED
    }
}
impl ::serde::Serialize for AccountCode {
    fn serialize<S: ::serde::Serializer>(
        &self,
        s: S,
    ) -> ::core::result::Result<S::Ok, S::Error> {
        s.serialize_str(::buffa::Enumeration::proto_name(self))
    }
}
impl<'de> ::serde::Deserialize<'de> for AccountCode {
    fn deserialize<D: ::serde::Deserializer<'de>>(
        d: D,
    ) -> ::core::result::Result<Self, D::Error> {
        struct _V;
        impl ::serde::de::Visitor<'_> for _V {
            type Value = AccountCode;
            fn expecting(
                &self,
                f: &mut ::core::fmt::Formatter<'_>,
            ) -> ::core::fmt::Result {
                f.write_str(
                    concat!("a string, integer, or null for ", stringify!(AccountCode)),
                )
            }
            fn visit_str<E: ::serde::de::Error>(
                self,
                v: &str,
            ) -> ::core::result::Result<AccountCode, E> {
                <AccountCode as ::buffa::Enumeration>::from_proto_name(v)
                    .ok_or_else(|| { ::serde::de::Error::unknown_variant(v, &[]) })
            }
            fn visit_i64<E: ::serde::de::Error>(
                self,
                v: i64,
            ) -> ::core::result::Result<AccountCode, E> {
                let v32 = i32::try_from(v)
                    .map_err(|_| {
                        ::serde::de::Error::custom(
                            ::buffa::alloc::format!("enum value {v} out of i32 range"),
                        )
                    })?;
                <AccountCode as ::buffa::Enumeration>::from_i32(v32)
                    .ok_or_else(|| {
                        ::serde::de::Error::custom(
                            ::buffa::alloc::format!("unknown enum value {v32}"),
                        )
                    })
            }
            fn visit_u64<E: ::serde::de::Error>(
                self,
                v: u64,
            ) -> ::core::result::Result<AccountCode, E> {
                let v32 = i32::try_from(v)
                    .map_err(|_| {
                        ::serde::de::Error::custom(
                            ::buffa::alloc::format!("enum value {v} out of i32 range"),
                        )
                    })?;
                <AccountCode as ::buffa::Enumeration>::from_i32(v32)
                    .ok_or_else(|| {
                        ::serde::de::Error::custom(
                            ::buffa::alloc::format!("unknown enum value {v32}"),
                        )
                    })
            }
            fn visit_unit<E: ::serde::de::Error>(
                self,
            ) -> ::core::result::Result<AccountCode, E> {
                ::core::result::Result::Ok(::core::default::Default::default())
            }
        }
        d.deserialize_any(_V)
    }
}
impl ::buffa::json_helpers::ProtoElemJson for AccountCode {
    fn serialize_proto_json<S: ::serde::Serializer>(
        v: &Self,
        s: S,
    ) -> ::core::result::Result<S::Ok, S::Error> {
        ::serde::Serialize::serialize(v, s)
    }
    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
        d: D,
    ) -> ::core::result::Result<Self, D::Error> {
        <Self as ::serde::Deserialize>::deserialize(d)
    }
}
impl ::buffa::Enumeration for AccountCode {
    fn from_i32(value: i32) -> ::core::option::Option<Self> {
        match value {
            0i32 => ::core::option::Option::Some(Self::ACCOUNT_CODE_UNSPECIFIED),
            300i32 => ::core::option::Option::Some(Self::FUNDING),
            301i32 => ::core::option::Option::Some(Self::TRADING),
            _ => ::core::option::Option::None,
        }
    }
    fn to_i32(&self) -> i32 {
        *self as i32
    }
    fn proto_name(&self) -> &'static str {
        match self {
            Self::ACCOUNT_CODE_UNSPECIFIED => "ACCOUNT_CODE_UNSPECIFIED",
            Self::FUNDING => "FUNDING",
            Self::TRADING => "TRADING",
        }
    }
    fn from_proto_name(name: &str) -> ::core::option::Option<Self> {
        match name {
            "ACCOUNT_CODE_UNSPECIFIED" => {
                ::core::option::Option::Some(Self::ACCOUNT_CODE_UNSPECIFIED)
            }
            "FUNDING" => ::core::option::Option::Some(Self::FUNDING),
            "TRADING" => ::core::option::Option::Some(Self::TRADING),
            _ => ::core::option::Option::None,
        }
    }
    fn values() -> &'static [Self] {
        &[Self::ACCOUNT_CODE_UNSPECIFIED, Self::FUNDING, Self::TRADING]
    }
}
/// TransferCode identifies the product reason for a transfer.
#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug)]
#[repr(i32)]
pub enum TransferCode {
    /// Transfer reason was not specified.
    TRANSFER_CODE_UNSPECIFIED = 0i32,
    /// External deposit into a funding account.
    DEPOSIT = 1000i32,
    /// External withdrawal from a funding account.
    WITHDRAW = 1001i32,
    /// Maker fee charged for a trade.
    MAKER_FEE = 1010i32,
    /// Taker fee charged for a trade.
    TAKER_FEE = 1011i32,
    /// Internal account transfer.
    INTERNAL_TRANSFER = 1030i32,
    /// Spot trade base-asset leg.
    TRADE_BASE = 1031i32,
    /// Spot trade quote-asset leg.
    TRADE_QUOTE = 1032i32,
    /// Rebate transfer.
    REBATE = 1041i32,
    /// Funding-to-trading user bucket transfer.
    FUNDING_TO_TRADING = 1060i32,
    /// Trading-to-funding user bucket transfer.
    TRADING_TO_FUNDING = 1061i32,
    /// Reserve leg for a trading withdrawal.
    TRADING_WITHDRAW_RESERVE = 1062i32,
    /// Funding user-to-user transfer.
    FUNDING_USER_TRANSFER = 1063i32,
}
impl TransferCode {
    ///Idiomatic alias for [`Self::TRANSFER_CODE_UNSPECIFIED`]; `Debug` prints the variant name.
    #[allow(non_upper_case_globals)]
    pub const TransferCodeUnspecified: Self = Self::TRANSFER_CODE_UNSPECIFIED;
    ///Idiomatic alias for [`Self::DEPOSIT`]; `Debug` prints the variant name.
    #[allow(non_upper_case_globals)]
    pub const Deposit: Self = Self::DEPOSIT;
    ///Idiomatic alias for [`Self::WITHDRAW`]; `Debug` prints the variant name.
    #[allow(non_upper_case_globals)]
    pub const Withdraw: Self = Self::WITHDRAW;
    ///Idiomatic alias for [`Self::MAKER_FEE`]; `Debug` prints the variant name.
    #[allow(non_upper_case_globals)]
    pub const MakerFee: Self = Self::MAKER_FEE;
    ///Idiomatic alias for [`Self::TAKER_FEE`]; `Debug` prints the variant name.
    #[allow(non_upper_case_globals)]
    pub const TakerFee: Self = Self::TAKER_FEE;
    ///Idiomatic alias for [`Self::INTERNAL_TRANSFER`]; `Debug` prints the variant name.
    #[allow(non_upper_case_globals)]
    pub const InternalTransfer: Self = Self::INTERNAL_TRANSFER;
    ///Idiomatic alias for [`Self::TRADE_BASE`]; `Debug` prints the variant name.
    #[allow(non_upper_case_globals)]
    pub const TradeBase: Self = Self::TRADE_BASE;
    ///Idiomatic alias for [`Self::TRADE_QUOTE`]; `Debug` prints the variant name.
    #[allow(non_upper_case_globals)]
    pub const TradeQuote: Self = Self::TRADE_QUOTE;
    ///Idiomatic alias for [`Self::REBATE`]; `Debug` prints the variant name.
    #[allow(non_upper_case_globals)]
    pub const Rebate: Self = Self::REBATE;
    ///Idiomatic alias for [`Self::FUNDING_TO_TRADING`]; `Debug` prints the variant name.
    #[allow(non_upper_case_globals)]
    pub const FundingToTrading: Self = Self::FUNDING_TO_TRADING;
    ///Idiomatic alias for [`Self::TRADING_TO_FUNDING`]; `Debug` prints the variant name.
    #[allow(non_upper_case_globals)]
    pub const TradingToFunding: Self = Self::TRADING_TO_FUNDING;
    ///Idiomatic alias for [`Self::TRADING_WITHDRAW_RESERVE`]; `Debug` prints the variant name.
    #[allow(non_upper_case_globals)]
    pub const TradingWithdrawReserve: Self = Self::TRADING_WITHDRAW_RESERVE;
    ///Idiomatic alias for [`Self::FUNDING_USER_TRANSFER`]; `Debug` prints the variant name.
    #[allow(non_upper_case_globals)]
    pub const FundingUserTransfer: Self = Self::FUNDING_USER_TRANSFER;
}
impl ::core::default::Default for TransferCode {
    fn default() -> Self {
        Self::TRANSFER_CODE_UNSPECIFIED
    }
}
impl ::serde::Serialize for TransferCode {
    fn serialize<S: ::serde::Serializer>(
        &self,
        s: S,
    ) -> ::core::result::Result<S::Ok, S::Error> {
        s.serialize_str(::buffa::Enumeration::proto_name(self))
    }
}
impl<'de> ::serde::Deserialize<'de> for TransferCode {
    fn deserialize<D: ::serde::Deserializer<'de>>(
        d: D,
    ) -> ::core::result::Result<Self, D::Error> {
        struct _V;
        impl ::serde::de::Visitor<'_> for _V {
            type Value = TransferCode;
            fn expecting(
                &self,
                f: &mut ::core::fmt::Formatter<'_>,
            ) -> ::core::fmt::Result {
                f.write_str(
                    concat!("a string, integer, or null for ", stringify!(TransferCode)),
                )
            }
            fn visit_str<E: ::serde::de::Error>(
                self,
                v: &str,
            ) -> ::core::result::Result<TransferCode, E> {
                <TransferCode as ::buffa::Enumeration>::from_proto_name(v)
                    .ok_or_else(|| { ::serde::de::Error::unknown_variant(v, &[]) })
            }
            fn visit_i64<E: ::serde::de::Error>(
                self,
                v: i64,
            ) -> ::core::result::Result<TransferCode, E> {
                let v32 = i32::try_from(v)
                    .map_err(|_| {
                        ::serde::de::Error::custom(
                            ::buffa::alloc::format!("enum value {v} out of i32 range"),
                        )
                    })?;
                <TransferCode as ::buffa::Enumeration>::from_i32(v32)
                    .ok_or_else(|| {
                        ::serde::de::Error::custom(
                            ::buffa::alloc::format!("unknown enum value {v32}"),
                        )
                    })
            }
            fn visit_u64<E: ::serde::de::Error>(
                self,
                v: u64,
            ) -> ::core::result::Result<TransferCode, E> {
                let v32 = i32::try_from(v)
                    .map_err(|_| {
                        ::serde::de::Error::custom(
                            ::buffa::alloc::format!("enum value {v} out of i32 range"),
                        )
                    })?;
                <TransferCode as ::buffa::Enumeration>::from_i32(v32)
                    .ok_or_else(|| {
                        ::serde::de::Error::custom(
                            ::buffa::alloc::format!("unknown enum value {v32}"),
                        )
                    })
            }
            fn visit_unit<E: ::serde::de::Error>(
                self,
            ) -> ::core::result::Result<TransferCode, E> {
                ::core::result::Result::Ok(::core::default::Default::default())
            }
        }
        d.deserialize_any(_V)
    }
}
impl ::buffa::json_helpers::ProtoElemJson for TransferCode {
    fn serialize_proto_json<S: ::serde::Serializer>(
        v: &Self,
        s: S,
    ) -> ::core::result::Result<S::Ok, S::Error> {
        ::serde::Serialize::serialize(v, s)
    }
    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
        d: D,
    ) -> ::core::result::Result<Self, D::Error> {
        <Self as ::serde::Deserialize>::deserialize(d)
    }
}
impl ::buffa::Enumeration for TransferCode {
    fn from_i32(value: i32) -> ::core::option::Option<Self> {
        match value {
            0i32 => ::core::option::Option::Some(Self::TRANSFER_CODE_UNSPECIFIED),
            1000i32 => ::core::option::Option::Some(Self::DEPOSIT),
            1001i32 => ::core::option::Option::Some(Self::WITHDRAW),
            1010i32 => ::core::option::Option::Some(Self::MAKER_FEE),
            1011i32 => ::core::option::Option::Some(Self::TAKER_FEE),
            1030i32 => ::core::option::Option::Some(Self::INTERNAL_TRANSFER),
            1031i32 => ::core::option::Option::Some(Self::TRADE_BASE),
            1032i32 => ::core::option::Option::Some(Self::TRADE_QUOTE),
            1041i32 => ::core::option::Option::Some(Self::REBATE),
            1060i32 => ::core::option::Option::Some(Self::FUNDING_TO_TRADING),
            1061i32 => ::core::option::Option::Some(Self::TRADING_TO_FUNDING),
            1062i32 => ::core::option::Option::Some(Self::TRADING_WITHDRAW_RESERVE),
            1063i32 => ::core::option::Option::Some(Self::FUNDING_USER_TRANSFER),
            _ => ::core::option::Option::None,
        }
    }
    fn to_i32(&self) -> i32 {
        *self as i32
    }
    fn proto_name(&self) -> &'static str {
        match self {
            Self::TRANSFER_CODE_UNSPECIFIED => "TRANSFER_CODE_UNSPECIFIED",
            Self::DEPOSIT => "DEPOSIT",
            Self::WITHDRAW => "WITHDRAW",
            Self::MAKER_FEE => "MAKER_FEE",
            Self::TAKER_FEE => "TAKER_FEE",
            Self::INTERNAL_TRANSFER => "INTERNAL_TRANSFER",
            Self::TRADE_BASE => "TRADE_BASE",
            Self::TRADE_QUOTE => "TRADE_QUOTE",
            Self::REBATE => "REBATE",
            Self::FUNDING_TO_TRADING => "FUNDING_TO_TRADING",
            Self::TRADING_TO_FUNDING => "TRADING_TO_FUNDING",
            Self::TRADING_WITHDRAW_RESERVE => "TRADING_WITHDRAW_RESERVE",
            Self::FUNDING_USER_TRANSFER => "FUNDING_USER_TRANSFER",
        }
    }
    fn from_proto_name(name: &str) -> ::core::option::Option<Self> {
        match name {
            "TRANSFER_CODE_UNSPECIFIED" => {
                ::core::option::Option::Some(Self::TRANSFER_CODE_UNSPECIFIED)
            }
            "DEPOSIT" => ::core::option::Option::Some(Self::DEPOSIT),
            "WITHDRAW" => ::core::option::Option::Some(Self::WITHDRAW),
            "MAKER_FEE" => ::core::option::Option::Some(Self::MAKER_FEE),
            "TAKER_FEE" => ::core::option::Option::Some(Self::TAKER_FEE),
            "INTERNAL_TRANSFER" => ::core::option::Option::Some(Self::INTERNAL_TRANSFER),
            "TRADE_BASE" => ::core::option::Option::Some(Self::TRADE_BASE),
            "TRADE_QUOTE" => ::core::option::Option::Some(Self::TRADE_QUOTE),
            "REBATE" => ::core::option::Option::Some(Self::REBATE),
            "FUNDING_TO_TRADING" => {
                ::core::option::Option::Some(Self::FUNDING_TO_TRADING)
            }
            "TRADING_TO_FUNDING" => {
                ::core::option::Option::Some(Self::TRADING_TO_FUNDING)
            }
            "TRADING_WITHDRAW_RESERVE" => {
                ::core::option::Option::Some(Self::TRADING_WITHDRAW_RESERVE)
            }
            "FUNDING_USER_TRANSFER" => {
                ::core::option::Option::Some(Self::FUNDING_USER_TRANSFER)
            }
            _ => ::core::option::Option::None,
        }
    }
    fn values() -> &'static [Self] {
        &[
            Self::TRANSFER_CODE_UNSPECIFIED,
            Self::DEPOSIT,
            Self::WITHDRAW,
            Self::MAKER_FEE,
            Self::TAKER_FEE,
            Self::INTERNAL_TRANSFER,
            Self::TRADE_BASE,
            Self::TRADE_QUOTE,
            Self::REBATE,
            Self::FUNDING_TO_TRADING,
            Self::TRADING_TO_FUNDING,
            Self::TRADING_WITHDRAW_RESERVE,
            Self::FUNDING_USER_TRANSFER,
        ]
    }
}