[package]
name = "ib-flex"
version = "0.2.1"
authors = ["Clifton King <clifton@example.com>"]
edition = "2021"
rust-version = "1.70"
description = "Type-safe parser for Interactive Brokers (IBKR) FLEX XML statements: trades, positions, cash flows, corporate actions, and P&L."
documentation = "https://docs.rs/ib-flex"
homepage = "https://github.com/clifton/ib-flex"
repository = "https://github.com/clifton/ib-flex"
license = "MIT"
keywords = ["ibkr", "interactive-brokers", "flex", "trading", "finance"]
categories = ["parser-implementations", "finance", "api-bindings"]
readme = "README.md"

[dependencies]
# XML parsing with serde support
quick-xml = { version = "0.40", features = ["serialize"] }
serde = { version = "1.0", features = ["derive"] }

# Financial types
rust_decimal = { version = "1.36", features = ["serde-with-str"] }
chrono = { version = "0.4", features = ["serde"] }

# Error handling
thiserror = "2.0"

# HTTP client for FLEX Web Service API (optional)
reqwest = { version = "0.13", optional = true }
tokio = { version = "1.0", features = ["rt-multi-thread", "macros"], optional = true }
serde_json = { version = "1.0", optional = true }

[dev-dependencies]
anyhow = "1.0"
criterion = "0.8"
proptest = "1.4"
rand = "0.10"
tokio = { version = "1.0", features = ["rt-multi-thread", "macros"] }

[features]
default = []
api-client = ["reqwest", "tokio", "serde_json"]

[[bench]]
name = "parsing_benchmarks"
harness = false
