This is a wrapper around cargo rustc -- --pretty=expanded
. Once installed, the
command cargo expand
prints out the result of macro expansion applied to the
current crate.
Install with cargo install cargo-expand
.
This command optionally uses
rustfmt
to format the expanded output. If rustfmt
is not available, the expanded code
is not formatted. Install rustfmt
with cargo install rustfmt
.
$ cat src/main.rs
rust fn main() { println!("Hello, world!"); }
$ cargo expand
```rust
![feature(prelude_import)]
use std::prelude::v1::*;
extern crate std as std; fn main() { ::std::io::print(::std::fmt::Arguments::newv1({ static _STATICFMTSTR: &'static [&'static str] = &["Hello, world!\n"]; _STATICFMTSTR }, &match () { () => [], })); } ```
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in cargo-expand by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.