changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / rust/lib/sxp/tests/fmt.rs

changeset 8: 1227f932b628
author: ellis <ellis@rwest.io>
date: Tue, 17 Oct 2023 20:36:37 -0400
permissions: -rw-r--r--
description: rust import
1 use std::io::BufWriter;
2 use sxp::{DefaultFormatter, WriteFormatter};
3 
4 pub struct TestFormatter;
5 #[test]
6 fn canonical_fmt() {
7  let mut buf = vec![];
8  let mut f = DefaultFormatter;
9  f.write_nil(&mut BufWriter::new(&mut buf)).unwrap();
10  assert_eq!("nil", String::from_utf8(buf.clone()).unwrap());
11  buf.clear();
12  f.begin_list(&mut BufWriter::new(&mut buf)).unwrap();
13  assert_eq!("(", String::from_utf8(buf.clone()).unwrap());
14  buf.clear();
15  f.end_list(&mut BufWriter::new(&mut buf)).unwrap();
16  assert_eq!(")", String::from_utf8(buf.clone()).unwrap());
17  buf.clear();
18  f.begin_list_element(&mut BufWriter::new(&mut buf), false)
19  .unwrap();
20  assert_eq!(" ", String::from_utf8(buf.clone()).unwrap());
21  buf.clear();
22  f.begin_list_element(&mut BufWriter::new(&mut buf), true)
23  .unwrap();
24  assert_eq!("", String::from_utf8(buf.clone()).unwrap());
25  buf.clear();
26  f.end_list_element(&mut BufWriter::new(&mut buf)).unwrap();
27  assert_eq!("", String::from_utf8(buf.clone()).unwrap());
28  buf.clear();
29  f.begin_key(&mut BufWriter::new(&mut buf)).unwrap();
30  assert_eq!(":", String::from_utf8(buf.clone()).unwrap());
31  buf.clear();
32  f.begin_string(&mut BufWriter::new(&mut buf)).unwrap();
33  assert_eq!("\"", String::from_utf8(buf.clone()).unwrap());
34  buf.clear();
35  f.end_string(&mut BufWriter::new(&mut buf)).unwrap();
36  assert_eq!("\"", String::from_utf8(buf.clone()).unwrap());
37  buf.clear();
38 }