letter_sequence/
element.rs1use std::fmt;
2use std::convert::From;
3use crate::sequence::renderer;
4
5
6#[derive(Builder, Clone, Debug, PartialEq, Eq)]
7#[builder(derive(PartialEq, Eq))]
8pub struct Element {
9 inner: u64,
10 renderer: renderer::SeqRenderer,
11}
12
13impl fmt::Display for Element {
14 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> {
15 write!(f, "{}", self.renderer.render( self.inner ).unwrap() )
16 }
17}
18
19impl From<Element> for u64 {
20 fn from(e: Element) -> u64 {
21 e.inner
22 }
23}
24
25#[cfg(test)]
26mod test {
27 use super::*;
28 #[test]
29 fn display() {
30 let seqrender = renderer::SeqRendererBuilder::numeric().build().unwrap();
31 let elem = ElementBuilder::default()
32 .inner(42u64)
33 .renderer(seqrender)
34 .build()
35 .unwrap();
36 assert_eq!( elem.to_string(), "42" );
37 }
38}