ledger_models/fintekkers/wrappers/models/utils/
errors.rs1use 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}