@@ 236,6 236,28 @@ impl Lisp {
}
}
+impl From<i64> for Lisp {
+ fn from(x: i64) -> Lisp {
+ Lisp::Int(x)
+ }
+}
+impl From<&str> for Lisp {
+ fn from(s: &str) -> Lisp {
+ Lisp::String(s.to_owned())
+ }
+}
+impl<T> From<Option<T>> for Lisp
+where
+ Lisp: From<T>,
+{
+ fn from(x: Option<T>) -> Lisp {
+ match x {
+ Some(x) => Lisp::List(vec![Lisp::Symbol(Symbol::pack_str("some").unwrap()), Lisp::from(x)]),
+ None => Lisp::Symbol(Symbol::pack_str("none").unwrap()),
+ }
+ }
+}
+
impl PartialEq<i64> for Lisp {
fn eq(&self, rhs: &i64) -> bool {
match self {