Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/killercup/assert_tokens_eq

Like Rust's built-in assert_eq macro, but for token streams. Passes them through rustfmt, and shows a pretty diff
https://github.com/killercup/assert_tokens_eq

macros rust testing

Last synced: 11 days ago
JSON representation

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

Awesome Lists containing this project

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]).

[pretty_assertions]: https://crates.io/crates/pretty_assertions

## How it works

You write:

```rust
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, input2: Arc) {}
unimplemented!()
}
};
assert_tokens_eq!(got, expected);
```

and you get:

![](./screenshot.png)

## License

Licensed under either of

* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)

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.