optionstratlib_visualization/error/
graph.rs1use optionstratlib_backtest::error::BacktestError;
4use optionstratlib_core::error::DecimalError;
5use optionstratlib_math::error::{CurveError, SurfaceError};
6use thiserror::Error;
7
8#[derive(Error, Debug)]
14pub enum GraphError {
15 #[error("Render error: {0}")]
18 Render(String),
19
20 #[error("IO error: {0}")]
23 Io(#[from] std::io::Error),
24
25 #[error(transparent)]
27 Curve(CurveError),
28
29 #[error(transparent)]
31 Surface(SurfaceError),
32
33 #[error(transparent)]
36 Decimal(Box<DecimalError>),
37
38 #[error(transparent)]
42 Backtest(Box<BacktestError>),
43}
44
45impl From<BacktestError> for GraphError {
46 #[cold]
47 #[inline(never)]
48 fn from(err: BacktestError) -> Self {
49 GraphError::Backtest(Box::new(err))
50 }
51}
52
53impl From<DecimalError> for GraphError {
54 #[cold]
55 #[inline(never)]
56 fn from(err: DecimalError) -> Self {
57 GraphError::Decimal(Box::new(err))
58 }
59}
60
61impl From<CurveError> for GraphError {
62 #[cold]
63 #[inline(never)]
64 fn from(err: CurveError) -> Self {
65 GraphError::Curve(err)
66 }
67}
68
69impl From<SurfaceError> for GraphError {
70 #[cold]
71 #[inline(never)]
72 fn from(err: SurfaceError) -> Self {
73 GraphError::Surface(err)
74 }
75}