1use super::*;
4
5#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
7pub struct Rust;
8impl Format for Rust {
9 fn escape(f: &mut Formatter, s: &str) -> Result<(), Error> {
10 (&s as &dyn std::fmt::Debug).fmt(f)
11 }
12 fn mime() -> mime::Mime {
13 return "text/x-rust".parse().unwrap();
14 }
15 fn this_format() -> Self {
16 Rust
17 }
18}
19
20display_integers_as!(Rust);
21display_floats_as!(Rust, "e", "", 1, None);
22
23#[test]
24fn escaping() {
25 assert_eq!(&format_as!(Rust, ("&")).into_string(), r#""&""#);
26}
27#[test]
28fn floats() {
29 assert_eq!(&format_as!(Rust, 3.0).into_string(), "3");
30 assert_eq!(&format_as!(Rust, 3e5).into_string(), "3e5");
31 assert_eq!(&format_as!(Rust, 3e4).into_string(), "3e4");
32 assert_eq!(&format_as!(Rust, 3e3).into_string(), "3e3");
33 assert_eq!(&format_as!(Rust, 3e2).into_string(), "300");
34}