이 상자는 Cargo-Expand에 의해 대체 되었으며, 이는화물 통계 작업을 시작했을 때 누락 된 모든 기능에 대한 지원을 추가했습니다. 귀하의 의견과 지원에 감사드립니다.
당신의 삶을 살 수있는 방법에는 두 가지뿐입니다.
하나는 아무것도 기적이 아닌 것처럼 보입니다. 다른 하나는 마치 모든 것이 기적 인 것처럼 보입니다. -Albert 아인슈타인
시작하려면 밤마다 녹슬고 rustfmt 필요합니다.
Rustup을 통해 설치할 수 있습니다.
rustup install nightly
rustup component add rustfmt
모두 세트? 금이 가자!
cargo install cargo-inspect
Rust 파일에서 호출하십시오.
cargo inspect main.rs
파일을 지정하지 않으면 현재 상자가 대신 분석됩니다.
cargo inspect
상자의 크기에 따라 시간이 걸릴 수 있습니다.
인내하십시오.
또한 두 파일 출력을 비교할 수도 있습니다! 이것을 시도하십시오 :
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
}
}당신이 그것을 컴파일하면, 가장 먼저 녹이하는 일은 desugar입니다. 이 단계 후 코드가 어떻게 보이는지 확인하려면 실행하십시오.
cargo inspect examples/if_let.rs
이것은 다음 출력을 생성합니다.
examples 폴더에서 더 많은 예제를 찾으십시오. 당신은 또한 더 기여할 수 있습니다.
세계에서 가장 좋은 것은 간단한 빌딩 블록에서 조립됩니다. 이 도구는 거인의 어깨에 서 있습니다. 마법을 작동 시키려면 다음 명령을 실행합니다.
rustc -Zinspect=hir .rustfmt .prettyprint 는 멋진 신디언과 박쥐 상자 주변의 포장지입니다. 이것은 단점과 상류가있는 젊은 프로젝트입니다.
따라서 오늘 기고자가 되십시오!
현재로서는 매우 깨지기 쉬운 도구입니다. 실패하면 ~할 것 같다 끔찍한 출력을 생성합니다. 당신은 경고를 받았습니다. 물론 코드를 먹지 않을 것입니다. ?
어느 쪽에도 라이센스가 부여되었습니다
귀하의 선택에.
rawpixel.com에서 설계 한 돋보기