From b4a393cce7f4a6ec69db77d350f0bcb9d2249c53 Mon Sep 17 00:00:00 2001 From: Chris Cochrun Date: Wed, 20 Nov 2024 12:14:34 -0600 Subject: [PATCH] more conversions for values --- src/types.rs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/types.rs b/src/types.rs index e9a4cdb..89bdc43 100644 --- a/src/types.rs +++ b/src/types.rs @@ -109,6 +109,42 @@ impl From for String { } } +impl From for i32 { + fn from(value: Value) -> Self { + match value { + Value::Number(num) => num as i32, + _ => 0, + } + } +} + +impl From for i64 { + fn from(value: Value) -> Self { + match value { + Value::Number(num) => num, + _ => 0, + } + } +} + +impl From<&Value> for i32 { + fn from(value: &Value) -> Self { + match value { + Value::Number(num) => *num as i32, + _ => 0, + } + } +} + +impl From<&Value> for i64 { + fn from(value: &Value) -> Self { + match value { + Value::Number(num) => *num, + _ => 0, + } + } +} + #[derive(Debug, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] pub struct Symbol(pub String);