Rust 工程配置

Rust 第22节 工程配置

release profile

发布配置

可自定义,对代码编译拥有更多的控制

cargo 主要有两个 profile

dev profile, 开发阶段,cargo build

relese profile 发布阶段 cargo build --release

在Cargo.toml中对相关属性进行修改

例如编译优化等级

rust 复制代码
[profile.dev]
opt-level 0

[profile.release]
opt-level 3

opt-level 是编译优化等级,等级越高,代码优化越多,编译时间越长

文档注释

文档注释

用于生成文档

生产HTML文档

使用 /// 进行标识

支持markdown 格式

使用命令 cargo doc

他会运行 rustdoc 工具

使用命令cargo doc --open 生产完直接打开

常用章节

///# Examples 示例区域

///```

///let a

///`` `

其他常用章节

Panics 可能发生panic的场景

Errors 可能发生的错误

在运行cargo test 时,会运行文档中的示例代码

///可以理解为函数的注释

整个lib文档,或者整个crate进行注释 //!

pub use 重新导出

回顾一些关键字

mod 创建一个mode模块

pub 声明某一数据为公共的

use 将一些数据进行导入

当开发者编写crate时,建立的一些目录层级是规范的标准的,方便的

但是当使用者使用这些库时,可能就不会很方便

例如:

有一个类型,路径为:

my_crate::some_module::another_mode::my_types;

而使用者使用时,路径太深了,他想使用的是这样

my_crate::my_types;

这个时候我们可以使用 pub use 进行重新导出

正常导入

rust 复制代码
use release_project::one::s1;
use release_project::one::shello;
use release_project::two::s2;

重新导入后

rust 复制代码
use release_project::s1;
use release_project::shello;
fn main() {
    println!("Hello, world!");

    let d1 = s1{
        name : "小红".to_string(),
        age : 12,
    };
    shello(d1);

}

lib.rs 文件代码

rust 复制代码
//! # Art
//! 两个结构体
 
//重新导出
pub use self::one::s1;
pub use self::one::shello;
pub use self::two::s2;

/// 模块1
pub mod one {

    ///结构体s1
    pub struct s1 {
        pub name : String,
        pub age : u32,
    }

    ///函数shello
    pub fn shello(data : s1) {
        println!("name :{},age:{}",data.name,data.age);
    }
}

///模块2
pub mod two {
    ///结构体s2
    pub struct s2 {
        pub name : String,
        pub age : u32,
    }
}
相关推荐
AlienZHOU2 小时前
AI Coding 时代下,我的技术面试实践分享
前端·后端·面试
Captaincc5 小时前
AI用量v0.1.11更新发布 新增 jusage doctor 诊断指令 托盘展示token 和余额 新增 AutoClaw 支持
前端·后端·vibecoding
君顾15 小时前
上海24小时自助健身房系统开发实战指南:从架构设计到落地部署
java·开发语言·健身房
香菜TTT6 小时前
大模型上下文协议(MCP):AI 应用的“USB-C”接口技术
开发语言·人工智能·经验分享
aramae6 小时前
模拟实现strlen()函数 (C语言)
c语言·开发语言·后端
计算机魔术师6 小时前
德国Wiki被黑后两周,OpenAI终于把模型失控的账本摊开了
前端
kyriewen7 小时前
我让 AI 当面试官面了我一轮:第 3 个追问我就卡住了(附 10 道追问清单)
前端·面试·ai编程
jimy17 小时前
readelf 查看“派生类”的vtable符号
开发语言·c++
IT_陈寒7 小时前
Python的GIL把我坑惨了,多线程跑得比单线程还慢
前端·人工智能·后端
前端snow7 小时前
ai agent --- 多agent框架之图编排引擎-langgraph
前端