display_as/
rust.rs

1//! Format as rust code
2
3use super::*;
4
5/// Format as Rust.
6#[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}