fireblocks-sdk 2025.10.17

Rust implementation of the Fireblocks SDK
Documentation
// Fireblocks API
//
// Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain.  - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
//
// The version of the OpenAPI document: 1.8.0
// Contact: developers@fireblocks.com
// Generated by: https://openapi-generator.tech

use {
    crate::models,
    serde::{Deserialize, Serialize},
};

/// TransferRail : Transfer rail:  * **BLOCKCHAIN** - Transfer over the public
/// blockchain * **INTERNAL** - Internal transfer within the same account (e.g.
/// sub-accounts or same api key) * **PEER** - Peer transfer within the same
/// provider network * **SWIFT** - International wire transfer * **IBAN** -
/// International Bank Account Number transfer * **US_WIRE** - Domestic wire
/// transfer within the United States (e.g. FedWire) * **ACH** - Automated
/// Clearing House transfer, typically takes longer but not as expensive as wire
/// transfers * **SEPA** - Euro transfers within the SEPA zone * **SPEI** -
/// Mexican interbank electronic payment system * **PIX** - Brazilian instant
/// payment system * **LOCAL_BANK_TRANSFER_AFRICA** - Local bank transfers
/// within Africa * **MOBILE_MONEY** - Mobile money transfers (e.g. M-Pesa)
/// Transfer rail:  * **BLOCKCHAIN** - Transfer over the public blockchain *
/// **INTERNAL** - Internal transfer within the same account (e.g. sub-accounts
/// or same api key) * **PEER** - Peer transfer within the same provider network
/// * **SWIFT** - International wire transfer * **IBAN** - International Bank
/// Account Number transfer * **US_WIRE** - Domestic wire transfer within the
/// United States (e.g. FedWire) * **ACH** - Automated Clearing House transfer,
/// typically takes longer but not as expensive as wire transfers * **SEPA** -
/// Euro transfers within the SEPA zone * **SPEI** - Mexican interbank
/// electronic payment system * **PIX** - Brazilian instant payment system *
/// **LOCAL_BANK_TRANSFER_AFRICA** - Local bank transfers within Africa *
/// **MOBILE_MONEY** - Mobile money transfers (e.g. M-Pesa)
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum TransferRail {
    #[serde(rename = "BLOCKCHAIN")]
    Blockchain,
    #[serde(rename = "INTERNAL")]
    Internal,
    #[serde(rename = "PEER")]
    Peer,
    #[serde(rename = "SWIFT")]
    Swift,
    #[serde(rename = "IBAN")]
    Iban,
    #[serde(rename = "US_WIRE")]
    UsWire,
    #[serde(rename = "ACH")]
    Ach,
    #[serde(rename = "SEPA")]
    Sepa,
    #[serde(rename = "SPEI")]
    Spei,
    #[serde(rename = "PIX")]
    Pix,
    #[serde(rename = "LOCAL_BANK_TRANSFER_AFRICA")]
    LocalBankTransferAfrica,
    #[serde(rename = "MOBILE_MONEY")]
    MobileMoney,
}

impl std::fmt::Display for TransferRail {
    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
        match self {
            Self::Blockchain => write!(f, "BLOCKCHAIN"),
            Self::Internal => write!(f, "INTERNAL"),
            Self::Peer => write!(f, "PEER"),
            Self::Swift => write!(f, "SWIFT"),
            Self::Iban => write!(f, "IBAN"),
            Self::UsWire => write!(f, "US_WIRE"),
            Self::Ach => write!(f, "ACH"),
            Self::Sepa => write!(f, "SEPA"),
            Self::Spei => write!(f, "SPEI"),
            Self::Pix => write!(f, "PIX"),
            Self::LocalBankTransferAfrica => write!(f, "LOCAL_BANK_TRANSFER_AFRICA"),
            Self::MobileMoney => write!(f, "MOBILE_MONEY"),
        }
    }
}

impl Default for TransferRail {
    fn default() -> TransferRail {
        Self::Blockchain
    }
}