assert_tokens_eq

Crates.ioassert_tokens_eq
lib.rsassert_tokens_eq
version0.1.0
sourcesrc
created_at2019-07-30 21:32:46.094813
updated_at2019-07-30 21:32:46.094813
descriptionLike Rust's built-in `assert_eq` macro, but for token streams. Passes them through rustfmt, and shows a pretty diff.
homepagehttps://github.com/killercup/assert_tokens_eq
repositoryhttps://github.com/killercup/assert_tokens_eq.git
max_upload_size
id153063
size70,249
Pascal Hertleif (killercup)

documentation

http://docs.rs/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.

Commit count: 6

cargo fmt