pub struct Nav {
pub nav: f64,
pub cash: f64,
pub positions_value: f64,
pub positions: Vec<PositionBreakdown>,
}
pub struct PositionBreakdown {
pub outcome: String,
pub size: f64,
pub current_price: f64,
pub value: f64,
}
// Usage
use pc_core::Nav;
let cash = 1000.0;
let positions = exchange.fetch_positions(None).await?;
let nav = Nav::calculate(cash, &positions);
println!("NAV Breakdown");
println!("─────────────");
println!("Cash: ${:.2}", nav.cash);
println!("Positions: ${:.2}", nav.positions_value);
println!("Total NAV: ${:.2}", nav.nav);
for pos in &nav.positions {
println!(" {} ({} @ ${:.4}): ${:.2}",
pos.outcome, pos.size, pos.current_price, pos.value);
}