shape_core/traits/wolfram/
mod.rs

1use crate::{Point, Point3D};
2use wolfram_expr::{Expr, Symbol};
3
4impl<T> Point<T>
5where
6    Expr: From<T>,
7    T: Clone,
8{
9    pub fn as_wolfram(&self) -> Expr {
10        let x = Expr::from(self.x.clone());
11        let y = Expr::from(self.y.clone());
12        let list = Expr::list(vec![x, y]);
13        Expr::normal(Symbol::new("System`Point"), vec![list])
14    }
15}
16
17impl<T> Point3D<T>
18where
19    Expr: From<T>,
20    T: Clone,
21{
22    pub fn as_wolfram(&self) -> Expr {
23        let x = Expr::from(self.x.clone());
24        let y = Expr::from(self.y.clone());
25        let z = Expr::from(self.z.clone());
26        let list = Expr::list(vec![x, y, z]);
27        Expr::normal(Symbol::new("System`Point"), vec![list])
28    }
29}