sexprs_data_structures/value/
integer.rs1use 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}