nyar_error/parsing/
for_number.rs1use crate::{NyarError, SyntaxError};
2#[cfg(feature = "bigdecimal")]
3use bigdecimal::ParseBigDecimalError;
4#[cfg(feature = "num")]
5use num::{bigint::ParseBigIntError, rational::ParseRatioError};
6use std::num::{ParseFloatError, ParseIntError};
7
8impl From<ParseIntError> for SyntaxError {
9 fn from(error: ParseIntError) -> Self {
10 Self { info: error.to_string(), hint: "".to_string(), span: Default::default() }
11 }
12}
13
14impl From<ParseIntError> for NyarError {
15 fn from(error: ParseIntError) -> Self {
16 SyntaxError::from(error).into()
17 }
18}
19#[cfg(feature = "num")]
20impl From<ParseBigIntError> for SyntaxError {
21 fn from(error: ParseBigIntError) -> Self {
22 Self { info: error.to_string(), hint: "".to_string(), span: Default::default() }
23 }
24}
25
26#[cfg(feature = "num")]
27impl From<ParseBigIntError> for NyarError {
28 fn from(error: ParseBigIntError) -> Self {
29 SyntaxError::from(error).into()
30 }
31}
32
33#[cfg(feature = "num")]
34impl From<ParseRatioError> for NyarError {
35 fn from(error: ParseRatioError) -> Self {
36 SyntaxError { info: error.to_string(), hint: "".to_string(), span: Default::default() }.into()
37 }
38}
39impl From<ParseFloatError> for NyarError {
40 fn from(error: ParseFloatError) -> Self {
41 SyntaxError { info: error.to_string(), hint: "".to_string(), span: Default::default() }.into()
42 }
43}
44#[cfg(feature = "bigdecimal")]
45impl From<ParseBigDecimalError> for NyarError {
46 fn from(error: ParseBigDecimalError) -> Self {
47 SyntaxError { info: error.to_string(), hint: "".to_string(), span: Default::default() }.into()
48 }
49}