Trait SurfaceSmile
pub trait SurfaceSmile {
// Required methods
fn expiry(&self) -> SurfaceTenor;
fn black_vol(
&self,
market: &SurfaceMarketContext,
strike: f64,
) -> Result<f64, FerroRiskError>;
// Provided method
fn effective_forward(
&self,
market: &SurfaceMarketContext,
) -> Result<f64, FerroRiskError> { ... }
}