この木枠は貨物拡張に浸っていたため、貨物の検査に取り組み始めたときに欠けていたすべての機能をサポートしました。フィードバックとサポートをありがとうございました。
あなたの人生を生きる方法は2つしかありません。
1つは、まるで奇跡ではないかのようです。もう1つは、すべてが奇跡であるかのようです。 - アルバート・アインシュタイン
開始するには、毎晩錆びてrustfmtが必要です。
Rustup経由でそれらをインストールできます。
rustup install nightly
rustup component add rustfmt
すべてセット?ひび割れをしましょう!
cargo install cargo-inspect
錆びたファイルでそれを呼び出します:
cargo inspect main.rs
ファイルを指定しない場合、代わりに現在のクレートが分析されます。
cargo inspect
木枠のサイズに応じて、これにはしばらく時間がかかる場合があります。
我慢してください。
また、2つのファイル出力を比較できます!これを試してみてください:
cargo inspect --diff examples/range.rs,examples/range_inclusive.rs --plain
USAGE:
cargo inspect [FLAGS] [OPTIONS] [INPUT_FILE]
FLAGS:
-h, --help
Prints help information
--list-themes
Should we list all pretty printer themes?
--plain
Don't highlight output
-V, --version
Prints version information
-v, --verbose
Print the original code as a comment above the desugared code
OPTIONS:
--theme <THEME>
Specify a theme override for the pretty printer
--diff <files>
Diff input files
--format <format>
Override for the format that gets outputted when the `unpretty` mode is set to `flowgraph` [default: svg]
--unpretty <unpretty>
rustc "unpretty" parameters
*Note*: For `--unpretty=flowgraph=[symbol]` you need to have `dot` on your PATH. [default: hir]
ARGS:
<INPUT_FILE>
Input file
Rustは、多くの構文砂糖を可能にするため、書くことができます。ただし、カーテンの後ろを見て、コンパイラーがコードで実際に何をしているかを確認するのは難しい場合があります。
@tshepangを引用するには、「これらの便利さが何であるかを知るのは良いことです。ボンネットの下で何が起こっているのかを謎に陥らないようにするために...私たちが世界について持っている魔法の少ない思考は、より良いです。」
私は常に、プログラミング言語がバックグラウンドでどのように機能するか、コンパイラのバックエンドのメンテナンスを容易にするために私のコードがどのように展開されたかに興味がありました。
目標は、単なる人間にとってコンパイラをより親しみやすくすることです。
ミステリー!探検!発見!
詳細については、私のブログでcargo-inspectの背景について読んでください。
If-let matchに脱皮されます次のコードスニペットを検討してください。
fn main ( ) {
if let Some ( x ) = Some ( 1 ) {
// Do something with x
}
}コンパイルするとき、Rustが最初に行うことはDesugarそれです。このステップの後にコードがどのように見えるかを確認するには、実行してください
cargo inspect examples/if_let.rs
これにより、次の出力が生成されます。
examplesフォルダーで、その他の例をご覧ください。さらに貢献することもできます。
世界で最高のものは、単純なビルディングブロックから組み立てられています。このツールは、巨人の肩に立っています。その魔法を機能させるために、それは次のコマンドを実行します:
rustc -Zinspect=hir 、hirを取得するため。rustfmt 、出力をフォーマットするため。prettyprint 、素晴らしいSyntectとBat Cratesの単なるラッパーです。 これは若いプロジェクトで、マイナス面や利点があります。
したがって、今日は貢献者になります!
今のところ、これは非常に脆弱なツールです。それが失敗した場合、それかもしれない恐ろしい出力を生成します。あなたは警告されています。とはいえ、もちろん、コードは食べません。 ?
いずれかの下でライセンスされています
あなたのオプションで。
rawpixel.comによって設計された拡大ガラス