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,
}
}