summaryrefslogtreecommitdiff
path: root/src/eval/int.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2023-07-02 19:59:52 +0200
committerLaurenz <laurmaedje@gmail.com>2023-07-02 20:07:43 +0200
commitebfdb1dafa430786db10dad2ef7d5467c1bdbed1 (patch)
tree2bbc24ddb4124c4bb14dec0e536129d4de37b056 /src/eval/int.rs
parent3ab19185093d7709f824b95b979060ce125389d8 (diff)
Move everything into `crates/` directory
Diffstat (limited to 'src/eval/int.rs')
-rw-r--r--src/eval/int.rs81
1 files changed, 0 insertions, 81 deletions
diff --git a/src/eval/int.rs b/src/eval/int.rs
deleted file mode 100644
index 4e081617..00000000
--- a/src/eval/int.rs
+++ /dev/null
@@ -1,81 +0,0 @@
-use std::num::{NonZeroI64, NonZeroIsize, NonZeroU64, NonZeroUsize};
-
-use super::{cast, Value};
-
-macro_rules! signed_int {
- ($($ty:ty)*) => {
- $(cast! {
- $ty,
- self => Value::Int(self as i64),
- v: i64 => v.try_into().map_err(|_| "number too large")?,
- })*
- }
-}
-
-macro_rules! unsigned_int {
- ($($ty:ty)*) => {
- $(cast! {
- $ty,
- self => Value::Int(self as i64),
- v: i64 => v.try_into().map_err(|_| {
- if v < 0 {
- "number must be at least zero"
- } else {
- "number too large"
- }
- })?,
- })*
- }
-}
-
-macro_rules! signed_nonzero {
- ($($ty:ty)*) => {
- $(cast! {
- $ty,
- self => Value::Int(self.get() as i64),
- v: i64 => v
- .try_into()
- .ok()
- .and_then($ty::new)
- .ok_or_else(|| if v == 0 {
- "number must not be zero"
- } else {
- "number too large"
- })?,
- })*
- }
-}
-
-macro_rules! unsigned_nonzero {
- ($($ty:ty)*) => {
- $(cast! {
- $ty,
- self => Value::Int(self.get() as i64),
- v: i64 => v
- .try_into()
- .ok()
- .and_then($ty::new)
- .ok_or_else(|| if v <= 0 {
- "number must be positive"
- } else {
- "number too large"
- })?,
- })*
- }
-}
-
-signed_int! {
- i8 i16 i32 isize
-}
-
-unsigned_int! {
- u8 u16 u32 u64 usize
-}
-
-signed_nonzero! {
- NonZeroI64 NonZeroIsize
-}
-
-unsigned_nonzero! {
- NonZeroU64 NonZeroUsize
-}