【11】RUST使用cargo组织crate

news/2025/3/1 2:39:51/

文章目录

  • 使用cargo组织crate
    • 重导出
    • 编译
    • 文档生成
    • 测试
  • cargo组织工作空间 TODO
  • crate.io账号 TODO暂时不看
    • 发布crate

使用cargo组织crate

重导出

在模块顶部使用pub use self::重导出,方便使用模块时候直接使用use mod_X::xxx。从而隐藏crate内部模块的结构。方便向外部暴露接口。
mod_x.rs如下:

rust">pub use self::mod_A:fun_01;
pub use self::mod_B:type_01;

编译

cargo build
cargo build relesase

分别对应cargo.toml中的编译选项优化配置

# 编译选项
[profile.dev] # cargo build 默认使用 opt-level = 0 ,可选自行配置替换默认配置
opt-level = 0 # 优化基本从0-3可选
[profile.release] # cargo build --relsase 默认使用 opt-level = 0
opt-level = 3

文档生成

  • //!:注释文本,为模块或 crate 提供顶层文档,写在模块或 crate 的顶层。能够支持markdown格式。
  • ///:注释文档,为具体的项(如函数、结构体)提供文档,写在函数、结构体定义前。能够支持markdown格式。
  • //:普通注释,不生成文档。
rust">//! # My Crate
//!
//! `my_crate` is a collection of utilities to make performing certain
//! calculations more convenient./// Adds one to the number given.
///
/// # Examples
///
/// ```
/// let arg = 5;
/// let answer = my_crate::add_one(arg);
///
/// assert_eq!(6, answer);
/// ```
pub fn add_one(x: i32) -> i32 {
x + 1
}
cargo doc --open #生成当前crate的文档

测试

cargo test
  • 测试会执行注释中Examples下的示例代码

cargo组织工作空间 TODO

crate.io账号 TODO暂时不看

发布crate

[package]
name = "guessing_game" # 包名需要全网唯一
version = "0.1.0"
edition = "2021"
description = "A fun game where you guess what number the computer has chosen." # 描述信息
license = "MIT OR Apache-2.0" # 版权信息
[dependencies]

http://www.ppmy.cn/news/1575659.html

相关文章

边缘计算收益低的三大指标

边缘计算收益低的三大指标主要包括以下方面: 1. 资源贡献不足: 边缘计算的收益通常基于所提供的带宽、存储和计算资源来计算。如果设备的网络带宽有限、在线时间短或提供的存储容量较小,可能无法满足平台设定的最低贡献标准,从而导…

Java:泛型

文章目录 泛型什么都能传进go&#xff08;&#xff09;限定只能传进Car类ArrayList<Car> 和ArrayList<Bens>不一样 泛型通配符 &#xff1f;extends 上限super 下限 泛型的注意事项第二条 能看懂代码&#xff0c;知道是啥意思就行&#xff0c; 不用非得记住用 泛型…

2025年跟上AI新时代:带AI人工智能的蜜罐系统T-Pot

T-Pot是一个集成式、可选分布式的、支持多架构&#xff08;amd64、arm64&#xff09;的蜜罐平台&#xff0c;它支持20多种蜜罐&#xff0c;并提供了使用Elastic Stack的无数可视化选项、动态实时攻击地图以及众多安全工具&#xff0c;以进一步提升蜜罐系统体验。源码地址&#…

在 Vue 2 中使用 Canvas 绘制多边形

Canvas 是一个强大的工具&#xff0c;用于创建动态图形和交互式可视化内容。Vue.js 提供了便捷的双向数据绑定和组件化开发方式&#xff0c;使得在 Vue 中使用 Canvas 变得更加高效。本文将介绍如何在 Vue 2 中实现一个简单的多边形绘制工具&#xff0c;支持报警区域和安全区域…

常用的HTML meta标签有哪些

meta是 HTML 中的一个元数据标签&#xff0c;位于 <head> 标签内&#xff0c;不会在页面上直接显示&#xff0c;但能为浏览器和搜索引擎提供关于网页的重要信息。以下是一些常用的 <meta> 标签及其用途&#xff1a; 1. 字符编码声明 用于指定 HTML 文档的字符编码…

[已解决] ModuleNotFoundError: No module named ‘langgraph.checkpoint.sqlite‘

目录 0 背景 1 报错 2 解决方案 3 成果 参考文章-来自Google搜索&#xff1a;Short course "AI Agents in LangGraph" needs to be fixed in Lesson 4 - Short Course Q&A / AI Agents in LangGraph - DeepLearning.AI 0 背景 LangGraph 是一个开源的基于图…

MySQL--》如何通过选择合适的存储引擎提高查询效率?

目录 MySQL体系结构 存储引擎简介 存储引擎特点 存储引擎选择 MySQL体系结构 体系结构&#xff1a;可以看作是由多个模块和组件组成的一个系统&#xff0c;每个部分都承担着不同的职责&#xff0c;从客户端到存储引擎每一层都精心设计来提供高效、可靠的数据库服务&#x…

C#开发——日期操作类DateTime

在C#中&#xff0c;日期和时间的操作主要通过 System.DateTime 类来实现。 DateTime 提供了丰富的属性和法&#xff0c;用于处理日期和时间的创建、格式化、比较和计算等操作。以下是一些常用的日期函数和特性&#xff1a; 一、创建日期和时间 1、直接指定日期和时间&…