rust学习: 有用的命令

devtools/2024/12/23 15:42:05/

在学习rust的过程中, 发现一些有用的命令, 记录之.

rust-lang/cargo/wiki/Third-party-cargo-subcommands">cargo subcommands

cargo 子命令(cargo subcommands)是一种有用的机制, 可以对名为cargo-xxx的命令通过 cargo xxx来调用.

cargo官方整理了一份cargo subcommands在这里:
https://github.com/rust-lang/cargo/wiki/Third-party-cargo-subcommands

cargo-expand

可以将rust中的宏展开.
代码仓库: https://github.com/dtolnay/cargo-expand

例子:
cargo new demo
修改main.rs内容如下:

rust">#[derive(Debug)]
struct User {name: String,age: u8,
}fn main() {let u = User{name: String::from("John"),age: 30,};println!("{:?}", u);
}

运行cargo expand, 效果:

rust">#![feature(prelude_import)]
#[prelude_import]
use std::prelude::rust_2021::*;
#[macro_use]
extern crate std;
struct User {name: String,age: u8,
}
#[automatically_derived]
impl ::core::fmt::Debug for User {#[inline]fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {::core::fmt::Formatter::debug_struct_field2_finish(f,"User","name",&self.name,"age",&&self.age,)}
}
fn main() {let u = User {name: String::from("John"),age: 30,};{::std::io::_print(format_args!("{0:?}\n", u));};
}

这样方便我们了解宏展开的效果.

其他

tokei

统计代码, 据说是非常快. 我用过的统计代码的工具还有 https://github.com/AlDanial/cloc.
这里简单做个比较, 统计的仓库是 neo4j的5.4版本 :
在这里插入图片描述
在这里插入图片描述
可以看到, tokei统计的文件数比cloc要多, 应该是两个命令默认的规则不一样. 时间上面 tokei 是"秒出结果", 而cloc总用时11秒多.
确实如 tokei 介绍的一样: Tokei is very fast

(持续更新)


http://www.ppmy.cn/devtools/144728.html

相关文章

Kubernetes网络管理

Kubernetes 网络管理是 Kubernetes 集群中非常重要的一部分,它涉及到 Pod 之间的通信、服务发现、负载均衡以及与外部网络的连接。以下是 Kubernetes 网络管理的关键概念和组件: 1. Kubernetes 网络模型 Kubernetes 网络模型基于以下几个基本原则&…

【Nginx】基础

文章目录 代理正向代理反向代理 负载均衡Nginx安装Http反向代理负载均衡 代理 概念: 计算机中的一种概念,一般指代码设计方式,如AOP动态代理,或者物理层访问方式,如代理服务器 AOP的原理是动态代理,通过…

《Java编程入门官方教程》第八章练习答案

【练习8-1(CharQ.java、IQDemo.java)】创建队列接口 为在实际中了解接口的强大功能,下面看一个实际例子。在以前的章节中,使用过一个名为Queue的类,该类实现了一个简单的固定大小的字符队列。然而,有许多方法可以实现一个队列。例…

爬虫代码中如何处理异常?

在编写爬虫代码时,处理异常是非常重要的一步,因为它可以帮助你的程序更加健壮,能够应对网络请求失败、解析错误等问题。以下是一些常见的异常处理方法: 1. 网络请求异常 使用requests库时,可能会遇到网络连接问题&am…

GA-BP分类-遗传算法(Genetic Algorithm)和反向传播算法(Backpropagation)

GA-BP分类神经网络的用途介绍 源代码 什么是 GA-BP 分类神经网络? GA-BP 分类神经网络结合了遗传算法(Genetic Algorithm,简称 GA)和反向传播算法(Backpropagation,简称 BP)来优化神经网络的…

【专题】操作系统期末复习资料

一、绪论 (★ ★)操作系统基本概念:操作系统的功能,特征,层次结构。 操作系统的地位。 操作系统作为裸机和应用的中间层; 提供资源管理功能和方便用户的各种服务功能; 将裸机改造成功能更强、…

数据结构初阶---二叉树

一、二叉树链式结构的实现 二叉树的接口实现一般涉及到函数的递归,这是因为二叉树包含根、左子树、右子树三部分,而子树又有与之对应的根、左子树、右子树,符合递归的特征。 1.二叉树的遍历 二叉树的遍历有4种形式:前序遍历、中…

node.js的简单示例

Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,用于方便地构建快速、可扩展的网络应用。下面是一个简单的Node.js示例,它创建了一个简单的HTTP服务器,当访问服务器时,它会响应“Hello World” // 引入Node.js的HTTP模块…