ate
assert_tokens_eq
cargo install assert_tokens_eq
ate

assert_tokens_eq

Like Rust's built-in assert_eq macro, but for token streams. Passes them through rustfmt, and shows a pretty diff

by Pascal Hertleif

0.1.0 (see all)License:MIT OR Apache-2.0
cargo install assert_tokens_eq
Readme

assert_tokens_eq

Like Rust's built-in assert_eq macro, but for token streams. Passes them through rustfmt, and shows a pretty diff (powered by pretty_assertions).

How it works

You write:

let got = something_that_generates_rust_code();
let expected = quote! {
    #[no_mangle]
    extern "C" fn foo(
        input: *const ::libc::c_char,
        input_len: ::libc::size_t,
        input3: *const ::libc::c_int,
        input3_len: ::libc::size_t,
    ) {
        fn foo(input: Arc<str>, input2: Arc<str>) {}
        unimplemented!()
    }
};
assert_tokens_eq!(got, expected);

and you get:

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

GitHub Stars

13

LAST COMMIT

3yrs ago

MAINTAINERS

1

CONTRIBUTORS

1

OPEN ISSUES

0

OPEN PRs

0
VersionTagPublished
0.1.0
3yrs ago
No alternatives found
No tutorials found
Add a tutorial