#[cfg(test)]
mod tests;
use crate::fleet_ensure::model::{ActualCycleConservation, u128_text};
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(untagged)]
pub enum FleetRetirementConservationRecord {
ExternalDebit(Box<RetirementExternalDebitRecord>),
NetBalance(ActualCycleConservation),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(deny_unknown_fields)]
pub struct RetirementExternalDebitRecord {
pub source_conservation: ActualCycleConservation,
pub external_debit: RetirementWithdrawalRecord,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(deny_unknown_fields)]
pub struct RetirementWithdrawalRecord {
pub ledger: String,
pub operator: String,
pub destination: String,
pub network_identity_sha256: String,
pub block_sha256: String,
pub block_index: u64,
pub timestamp_ns: u64,
#[serde(with = "u128_text")]
pub amount_cycles: u128,
#[serde(with = "u128_text")]
pub fee_cycles: u128,
}