//! Pricing models available in `quant-opts`.
//!
//! For now this module provides a Black–Scholes–Merton implementation
//! for vanilla options. Additional models (e.g. SABR) can be added
//! alongside it while reusing the core domain types.
//!
//! The [`VanillaModel`] trait defines a generic interface for
//! vanilla option models. Concrete models like [`black_scholes::BlackScholes`]
//! implement this trait so callers can write code generic over the model.
use crate;
/// Core abstraction for a model that can price vanilla options.
///
/// This trait is intentionally conservative in scope for now:
/// - it operates only on the core domain types,
/// - it does not prescribe any particular volatility parametrisation,
/// - it exposes fallible operations via `Result` so callers can
/// handle invalid inputs explicitly.