首页 > 其他分享 >使用 cargo expand 查看被宏隐藏的代码

使用 cargo expand 查看被宏隐藏的代码

时间:2023-09-23 12:25:46浏览次数:48  
标签:info cargo 被宏 MiB component nightly expand

使用 cargo expand 查看被宏隐藏的代码

使用 VScode 安装扩展 Rust Macro Expand

需要安装以下软件:

  • cargo-expand A cargo crate for easier handling of compiler commands
  • Rust nightly compiler, you can install it with rustup toolchain install nightly

cargo expand简介

  • cargo expand 目前这个需要安装 nightlytoolchainrustup toolchain install nightly-x86_64-unknown-linux-gnu

    ~> rustup toolchain install nightly
    info: syncing channel updates for 'nightly-x86_64-pc-windows-msvc'
    info: latest update on 2023-07-26, rust version 1.73.0-nightly (864bdf784 2023-07-25)
    info: downloading component 'cargo'
    info: downloading component 'clippy'
    info: downloading component 'rust-docs'
    info: downloading component 'rust-std'
    info: downloading component 'rustc'
    58.2 MiB /  58.2 MiB (100 %)  40.5 MiB/s in  1s ETA:  0s
    info: downloading component 'rustfmt'
    info: installing component 'cargo'
    info: installing component 'clippy'
    info: installing component 'rust-docs'
    13.7 MiB /  13.7 MiB (100 %)   2.0 MiB/s in  4s ETA:  0s
    info: installing component 'rust-std'
    23.6 MiB /  23.6 MiB (100 %)  16.2 MiB/s in  1s ETA:  0s
    info: installing component 'rustc'
    58.2 MiB /  58.2 MiB (100 %)  17.4 MiB/s in  3s ETA:  0s
    info: installing component 'rustfmt'
    
    nightly-x86_64-pc-windows-msvc installed - rustc 1.73.0-nightly (864bdf784 2023-07-25)
    
    info: checking for self-update
    
  • 安装命令:cargo +nightly install cargo-expand

    ~> cargo +nightly install cargo-expand
        Updating `ustc` index
    Downloaded cargo-expand v1.0.62 (registry `ustc`)
    Downloaded 1 crate (26.8 KB) in 1.29s
    Installing cargo-expand v1.0.62
    Downloaded ansi_colours v1.2.2 (registry `ustc`)
    ...
        Finished release [optimized] target(s) in 1m 25s
    Installing C:\Users\liuzonglin\.cargo\bin\cargo-expand.exe
    Installed package `cargo-expand v1.0.62` (executable `cargo-expand.exe`)
    

使用方法

  • 源代码

    #![allow(non_camel_case_types)]
    use async_trait::async_trait;
    fn main() {}
    #[async_trait]
    trait example {
        async fn fetch(trace_id: &str, span_id: &str);
    }
    
  • 运行 cargo expand

    ~> cargo expand
        Checking lifetime_kata v0.1.0 (D:\.github\rust\lifetime_kata)
        Finished dev [unoptimized + debuginfo] target(s) in 0.04s
    
    #![feature(prelude_import)]
    #![allow(non_camel_case_types)]
    #[prelude_import]
    use std::prelude::rust_2021::*;
    #[macro_use]
    extern crate std;
    use async_trait::async_trait;
    fn main() {}
    trait example {
        #[must_use]
        #[allow(clippy::type_complexity, clippy::type_repetition_in_bounds)]
        fn fetch<'life0, 'life1, 'async_trait>(
            trace_id: &'life0 str,
            span_id: &'life1 str,
        ) -> ::core::pin::Pin<
            Box<
                dyn ::core::future::Future<Output = ()> + ::core::marker::Send + 'async_trait,
            >,
        >
        where
            'life0: 'async_trait,
            'life1: 'async_trait;
    }
    

标签:info,cargo,被宏,MiB,component,nightly,expand
From: https://www.cnblogs.com/liuzonglin/p/17724159.html

相关文章

  • 【愚公系列】2023年09月 WPF控件专题 Expander控件详解
    (文章目录)前言WPF控件是WindowsPresentationFoundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见......
  • 01 - 安装 Rust 和使用 Cargo
    一、Rust介绍Rust是一门系统编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust在语法上和C++类似,但是设计者想要在保证性能的同时提供更好的内存安全。Rust最初是由Mozilla研究院的GraydonHoare设计创造,然后在DaveHerman,Br......
  • 探索 Rust:从 ‘Hello, World!’ 到 Cargo 工程
    假设你已经成功安装了Rust,那么现在我们来开始你的Rust编程之旅的第一步,从一个传统的"Hello,World!"示例开始正式的Rust学习。首先,我们需要创建一个目录,来整体存放我们的示例代码。我这边的工作目录就是~/lanyulei/project/rust,你可以根据你自己的需求创建对应的目录,来存......
  • el-tree 折叠节点时去掉 defaultExpandedKeys 中已折叠的节点及其子节点
    问题场景树形节点默认是全部折叠的。展开节点A,再把它折叠。然后给节点B新增子节点,新增成功后刷新树,却发现节点A是展开的。原因分析树刷新后全部节点都默认是折叠的,除非defaultExpandedKeys数组中有数据(这些节点数据是展开的)。因此,只需要在折叠节点A时,在defaultExpandedKeys......
  • vscode 运行Rust cargo test时显示log输出
    使用以下tasks.json对于log库的输出(info,debug,warn...)需要在test方法上一行加#[test_log::test](来自test-loghttps://crates.io/crates/test-log){"version":"2.0.0","tasks":[{"type":"shell&quo......
  • 关于Antd中table列Fixed导致的expandedRowRender展开行错位问题
    右侧操作列的属性为fixed:'right'在展开行时出现列错位的问题打开element发现列属性设置为fixed后在DOM中是独立出来的解决办法:<a-table:columns="columns":data-source="data"bordered:pagination="false":scroll="{......
  • unexpand
    unexpand将文件的空白字符转换为制表符补充说明unexpand命令用于将给定文件中的空白字符(space)转换为制表符(TAB),并把转换结果显示在标准输出设备(显示终端)。语法unexpand(选项)(参数)选项-a或--all:转换文件中所有的空白字符;--first-only:仅转换开头的空白字符;-t<N>:指定TAB......
  • Hello Cargo
    创建于2023-03-3009:51本笔记主要来自于Rust程序设计语言中文版[1.3],旨在记录个人学习过程中的重点和心得体会。在记录过程中,笔者会对文档中的某些内容进行摘抄或修改,并添加自己的注释或说明。如有不当之处,请指正。Cargo是Rust的构建系统和包管理器(有些类似MAVEN和YA......
  • Flutter灵活布局要掌握的两个控件Expanded和Flexible
    Expanded和Flexible介绍在Flutter中,Expanded和Flexible是两个用于控制子组件尺寸的Widget,它们都可以用于实现灵活的布局。ExpandedWidget会自动将子组件的尺寸扩展到父组件剩余的空间,而FlexibleWidget则会自动调整子组件的尺寸以适应父组件的尺寸。具体来说,ExpandedWidget......
  • Maven cargo 远程自动部署war
    Mavencargo远程自动部署war     如果不使用maven构建项目,则可以直接考虑将war包直接通过cargo远程部署到远端服务器上(也就是说先创建个maven项目,打好包,再通过shell脚本,将所需要的项目打成war包,放到target目录下,对war包进行覆盖)。 打war包:cd项目目录,即WEB-INF所在目录j......