mathhook_core/core/expression/
conversion.rs

1//! Conversion traits for expressions
2//!
3//! Implements From/Into traits for ergonomic expression creation.
4
5use super::Expression;
6use crate::core::{Number, Symbol};
7
8impl From<i32> for Expression {
9    fn from(value: i32) -> Self {
10        Self::integer(value as i64)
11    }
12}
13
14impl From<i64> for Expression {
15    fn from(value: i64) -> Self {
16        Self::integer(value)
17    }
18}
19
20impl From<f64> for Expression {
21    fn from(value: f64) -> Self {
22        Self::Number(Number::float(value))
23    }
24}
25
26impl From<Symbol> for Expression {
27    fn from(symbol: Symbol) -> Self {
28        Self::Symbol(symbol)
29    }
30}
31
32impl From<&str> for Expression {
33    fn from(name: &str) -> Self {
34        Self::Symbol(Symbol::new(name))
35    }
36}