Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/killercup/assert_tokens_eq
- Owner: killercup
- License: apache-2.0
- Created: 2019-07-30T20:11:57.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-07-11T17:23:36.000Z (over 1 year ago)
- Last Synced: 2024-10-12T03:25:01.135Z (27 days ago)
- Topics: macros, rust, testing
- Language: Rust
- Homepage: http://docs.rs/assert_tokens_eq
- Size: 51.8 KB
- Stars: 14
- Watchers: 4
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
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.