Skip to main content

quorum_set/tree/quorum_tree/
impl_display.rs

1use std::fmt;
2
3use super::QuorumTree;
4
5impl<ID> fmt::Display for QuorumTree<ID>
6where ID: Ord + fmt::Display
7{
8    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9        fmt::Display::fmt(&self.spec, f)
10    }
11}
12
13#[cfg(test)]
14mod tests {
15    use super::QuorumTree;
16    use crate::Node;
17
18    fn id(i: u64) -> Node<u64> {
19        Node::Id(i)
20    }
21
22    #[test]
23    fn test_display_single_line() {
24        let qset = QuorumTree::new(2, [id(3), id(1), id(2)]).unwrap();
25
26        assert_eq!("2/(1,2,3)", qset.to_string());
27    }
28
29    #[test]
30    fn test_display_multiline() {
31        let qset = QuorumTree::new(2, [id(3), id(1), id(2)]).unwrap();
32        let expected = r#"2/(
33  1,
34  2,
35  3,
36)"#;
37
38        assert_eq!(expected, format!("{:#}", qset));
39    }
40}