Crate ib_flex

Crate ib_flex 

Source
Expand description

§ib-flex

Pure Rust parser for Interactive Brokers FLEX XML statements.

§Features

  • 🚀 Zero-copy parsing with quick-xml and serde
  • 💰 Financial precision with rust_decimal for all monetary values
  • 📅 Correct datetime handling with chrono
  • Type-safe enums for asset categories, order types, etc.
  • 🔧 No external dependencies beyond XML/serde
  • 📦 Supports both Activity and Trade Confirmation FLEX

§Quick Start

use ib_flex::parse_activity_flex;

let xml = std::fs::read_to_string("flex_statement.xml")?;
let statement = parse_activity_flex(&xml)?;

println!("Account: {}", statement.account_id);
println!("Total trades: {}", statement.trades.items.len());

// Calculate total commissions
let total_commission: rust_decimal::Decimal =
    statement.trades.items.iter().filter_map(|t| t.commission).sum();
println!("Total commissions: ${}", total_commission);

§Supported FLEX Sections

§Activity FLEX

  • ✅ Trades
  • ✅ Open Positions
  • ✅ Cash Transactions
  • ✅ Corporate Actions
  • ✅ Securities Info
  • ✅ FX Conversion Rates

§Trade Confirmation FLEX

  • ✅ Trade executions with all details
  • ✅ Commission breakdown

§Known Limitations

  1. Date formats: Only ISO-8601 (yyyy-MM-dd) and yyyyMMdd supported
  2. Schema versions: Tested with FLEX schema version 3

Re-exports§

pub use error::ParseError;
pub use error::Result;
pub use types::ActivityFlexStatement;
pub use types::AssetCategory;
pub use types::BuySell;
pub use types::CashTransaction;
pub use types::CorporateAction;
pub use types::OpenClose;
pub use types::OrderType;
pub use types::Position;
pub use types::PutCall;
pub use types::Trade;
pub use types::TradeConfirmationStatement;
pub use version::FlexSchemaVersion;

Modules§

error
Error types for FLEX parsing
parsers
FLEX XML parsers
types
FLEX data types
version
FLEX schema version detection

Enums§

StatementType
FLEX statement type

Functions§

detect_statement_type
Detect FLEX statement type from XML
parse_activity_flex
Parse an Activity FLEX XML statement
parse_activity_flex_all
Parse all Activity FLEX statements from XML
parse_trade_confirmation
Parse a Trade Confirmation FLEX XML statement