ledger_models/fintekkers/wrappers/models/utils/
errors.rs

1use crate::fintekkers::models::position::MeasureProto;
2use tonic::{Code, Status};
3
4#[derive(Debug)]
5pub enum Error {
6    MissingPositionInput,
7    MissingPriceInput,
8    MissingFaceValue,
9    MissingCouponRate,
10    MissingMaturityDate,
11    MissingSecurityInput,
12    MissingMeasure(MeasureProto),
13    DecimalConversion,
14    DateConversion,
15    UuidError,
16}
17
18impl From<Error> for Status {
19    fn from(value: Error) -> Self {
20        match value {
21            Error::DateConversion => Status::new(Code::Internal, "Failed to convert date"),
22            Error::DecimalConversion => Status::new(Code::Internal, "Failed to convert decimal"),
23            Error::MissingMeasure(m) => Status::new(
24                Code::Internal,
25                format!("Missing measure {}", m.as_str_name()),
26            ),
27            _ => Status::new(Code::InvalidArgument, format!("{:?}", value)),
28        }
29    }
30}