jlib 0.3.7

A lightweight blockchain lib.
Documentation

use serde::{Deserialize, Serialize};
use crate::message::common::amount::{Amount, string_or_struct};

#[derive(Serialize, Deserialize, Debug)]
pub struct FinalFields {

    #[serde(rename="Flags")]
    pub flags: Option<u64>,

    #[serde(rename="Owner")]
    pub owner: Option<String>,

    #[serde(rename="RootIndex")]
    pub root_index: Option<String>,

    #[serde(rename="Account")]
    pub account: Option<String>,

    #[serde(rename="Balance")]
    pub balance: Option<String>,

    #[serde(rename="OwnerCount")]
    pub owner_count: Option<u64>,

    #[serde(rename="Sequence")]
    pub sequence: Option<u64>,

    #[serde(rename="ExchangeRate")]
    pub exchange_rate: Option<String>,
    
    #[serde(rename="TakerGetsCurrency")]
    pub taker_gets_currency: Option<String>,

    #[serde(rename="TakerGetsIssuer")]
    pub taker_gets_issuer: Option<String>,

    #[serde(rename="TakerPaysCurrency")]
    pub taker_pays_currency: Option<String>,

    #[serde(rename="TakerPaysIssuer")]
    pub taker_pays_issuer: Option<String>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct PreviousFields {
    #[serde(rename="Balance")]
    pub balance: String,

    #[serde(rename="Sequence")]
    pub sequence: Option<u64>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct ModifiedNode {
    #[serde(rename="FinalFields")]
    pub final_fields: FinalFields,
    
    #[serde(rename="LedgerEntryType")]
    pub ledger_entry_type: String,

    #[serde(rename="LedgerIndex")]
    pub ledger_index: String,

    #[serde(rename="PreviousFields")]
    pub previous_fields: Option<PreviousFields>,

    #[serde(rename="PreviousTxnID")]
    pub previous_txn_id: Option<String>,

    #[serde(rename="PreviousTxnLgrSeq")]
    pub previous_txn_lgr_seq: Option<u64>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct CreatedNode {
    #[serde(rename="LedgerEntryType")]
    pub ledger_entry_type: String, 
    
    #[serde(rename="LedgerIndex")]
    pub ledger_index: String, 
    
    #[serde(rename="NewFields")]
    pub new_field: NewFields, 
}


#[derive(Serialize, Deserialize, Debug)]
pub struct DeletedNode {
    #[serde(rename="LedgerEntryType")]
    pub ledger_entry_type: String, 
    
    #[serde(rename="LedgerIndex")]
    pub ledger_index: String, 
    
    #[serde(rename="FinalFields")]
    pub final_field: FinalFields, 
}

#[derive(Serialize, Deserialize, Debug)]
pub struct Meta {
    #[serde(rename="AffectedNodes")]
    pub modified_node: Vec<AffectedNodes>,
    
    #[serde(rename="TransactionIndex")]
    pub transaction_index: u64,

    #[serde(rename="TransactionResult")]
    pub transaction_result: String,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct AffectedNodes {
    #[serde(rename="ModifiedNode")]
    pub modified_node: Option<ModifiedNode>,
    
    #[serde(rename="CreatedNode")]
    pub create_node: Option<CreatedNode>,

    #[serde(rename="DeletedNode")]
    pub deleted_node: Option<DeletedNode>,
}


#[derive(Serialize, Deserialize, Debug)]
pub struct NewFields {
    #[serde(rename="Account")]
    account: String,
    
    #[serde(rename="BookDirectory")]
    book_directory: String,
    
    #[serde(rename="Flags")]
    flags: u64,
    
    #[serde(rename="Sequence")]
    sequence: u32,
    
    #[serde(rename="TakerGets")]
    #[serde(deserialize_with = "string_or_struct")]
    taker_gets: Amount,
    
    #[serde(rename="TakerPays")]
    #[serde(deserialize_with = "string_or_struct")]
    taker_pays: Amount,
}