sexprs_data_structures/value/
integer.rs

1use crate::impl_number_type;
2impl_number_type!(i64, Integer, AsInteger, as_integer);
3
4impl From<i32> for Integer {
5    fn from(value: i32) -> Integer {
6        if let Ok(value) = TryInto::<u32>::try_into(value) {
7            Integer{value: value.into()}
8        } else {
9            panic!("cannot convert from {:#?} to {}", value, Integer::type_name())
10        }
11    }
12}
13
14impl AsNumber<i64> for i32 {
15    fn as_number(&self) -> i64 {
16        *self as i64
17    }
18}
19
20impl AsInteger for i32 {
21    fn as_integer(&self) -> Integer {
22        Integer::from(*self as i64)
23    }
24}