mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 11:46:41 +01:00
serialize edn via display trait
This commit is contained in:
parent
23fe9f0949
commit
08184f9906
3 changed files with 20 additions and 6 deletions
|
|
@ -12,15 +12,28 @@ impl<T> Default for EdnItem<T> {
|
|||
Self::Nil
|
||||
}
|
||||
}
|
||||
impl<T: Debug + Display> Display for EdnItem<T> {
|
||||
fn fmt (&self, f: &mut Formatter<'_>) -> Result<(), FormatError> {
|
||||
use EdnItem::*;
|
||||
use itertools::join;
|
||||
match self {
|
||||
Nil => write!(f, ""),
|
||||
Num(u) => write!(f, "{u}"),
|
||||
Sym(u) => write!(f, "{u}"),
|
||||
Key(u) => write!(f, "{u}"),
|
||||
Exp(e) => write!(f, "({})", join(e.iter().map(|i|format!("{}", i)), " "))
|
||||
}
|
||||
}
|
||||
}
|
||||
impl<T: Debug> Debug for EdnItem<T> {
|
||||
fn fmt (&self, f: &mut Formatter<'_>) -> Result<(), FormatError> {
|
||||
use EdnItem::*;
|
||||
match self {
|
||||
Nil => write!(f, "Nil"),
|
||||
Num(u) => write!(f, "Num({u})"),
|
||||
Sym(u) => write!(f, "Sym({u:?})"),
|
||||
Key(u) => write!(f, "Key({u:?})"),
|
||||
Exp(e) => write!(f, "Exp({})",
|
||||
Nil => write!(f, "(nil)"),
|
||||
Num(u) => write!(f, "(num {u})"),
|
||||
Sym(u) => write!(f, "(sym {u:?})"),
|
||||
Key(u) => write!(f, "(key {u:?})"),
|
||||
Exp(e) => write!(f, "(exp {})",
|
||||
itertools::join(e.iter().map(|i|format!("{:?}", i)), ","))
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#![feature(type_alias_impl_trait)]
|
||||
#![feature(impl_trait_in_fn_trait_return)]
|
||||
|
||||
pub(crate) use std::{fmt::{Debug, Formatter, Error as FormatError}};
|
||||
pub(crate) use std::{fmt::{Debug, Display, Formatter, Error as FormatError}};
|
||||
|
||||
mod edn_error; pub use self::edn_error::*;
|
||||
mod edn_item; pub use self::edn_item::*;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue