pub struct CashTransaction {Show 13 fields
pub account_id: String,
pub transaction_id: Option<String>,
pub transaction_type: String,
pub date: Option<NaiveDate>,
pub date_time: Option<String>,
pub report_date: Option<NaiveDate>,
pub amount: Decimal,
pub currency: String,
pub fx_rate_to_base: Option<Decimal>,
pub description: Option<String>,
pub asset_category: Option<AssetCategory>,
pub conid: Option<String>,
pub symbol: Option<String>,
}Expand description
A cash transaction (deposit, withdrawal, dividend, interest, fee)
Represents any cash flow that affects your account balance: deposits, withdrawals, dividends, interest payments, withholding taxes, and fees.
§Example
use ib_flex::parse_activity_flex;
use rust_decimal::Decimal;
let xml = std::fs::read_to_string("activity.xml")?;
let statement = parse_activity_flex(&xml)?;
// Categorize cash flows
let mut dividends = Decimal::ZERO;
let mut interest = Decimal::ZERO;
let mut fees = Decimal::ZERO;
for cash_txn in &statement.cash_transactions.items {
match cash_txn.transaction_type.as_str() {
"Dividends" => {
dividends += cash_txn.amount;
println!("Dividend from {}: {}",
cash_txn.symbol.as_ref().unwrap_or(&"N/A".to_string()),
cash_txn.amount
);
}
"Broker Interest Paid" | "Broker Interest Received" => {
interest += cash_txn.amount;
}
"Other Fees" | "Commission Adjustments" => {
fees += cash_txn.amount;
}
_ => {
println!("{}: {}", cash_txn.transaction_type, cash_txn.amount);
}
}
}
println!("\nTotals:");
println!(" Dividends: {}", dividends);
println!(" Interest: {}", interest);
println!(" Fees: {}", fees);Fields§
§account_id: StringIB account number
transaction_id: Option<String>IB transaction ID
transaction_type: StringTransaction type (Deposits, Dividends, WithholdingTax, BrokerInterest, etc.)
date: Option<NaiveDate>Transaction date
date_time: Option<String>Transaction datetime
report_date: Option<NaiveDate>Report date
amount: DecimalAmount (positive for credits, negative for debits)
currency: StringCurrency
fx_rate_to_base: Option<Decimal>FX rate to base currency
description: Option<String>Description of transaction
asset_category: Option<AssetCategory>Asset category
conid: Option<String>Related security’s contract ID (for dividends)
symbol: Option<String>Related security’s symbol
Trait Implementations§
Source§impl Clone for CashTransaction
impl Clone for CashTransaction
Source§fn clone(&self) -> CashTransaction
fn clone(&self) -> CashTransaction
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CashTransaction
impl Debug for CashTransaction
Source§impl<'de> Deserialize<'de> for CashTransaction
impl<'de> Deserialize<'de> for CashTransaction
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for CashTransaction
impl PartialEq for CashTransaction
Source§impl Serialize for CashTransaction
impl Serialize for CashTransaction
impl StructuralPartialEq for CashTransaction
Auto Trait Implementations§
impl Freeze for CashTransaction
impl RefUnwindSafe for CashTransaction
impl Send for CashTransaction
impl Sync for CashTransaction
impl Unpin for CashTransaction
impl UnwindSafe for CashTransaction
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more