shape_core/traits/wolfram/
mod.rs1use 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}