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,
    }
}
相关推荐
q567315232 分钟前
R语言初学者爬虫简单模板
开发语言·爬虫·r语言·iphone
万少25 分钟前
第五款 HarmonyOS 上架作品 奇趣故事匣 来了
前端·harmonyos·客户端
OpenGL31 分钟前
Android targetSdkVersion升级至35(Android15)相关问题
前端
rzl021 小时前
java web5(黑马)
java·开发语言·前端
Amy.Wang1 小时前
前端如何实现电子签名
前端·javascript·html5
时序数据说1 小时前
为什么时序数据库IoTDB选择Java作为开发语言
java·大数据·开发语言·数据库·物联网·时序数据库·iotdb
今天又在摸鱼1 小时前
Vue3-组件化-Vue核心思想之一
前端·javascript·vue.js
蓝婷儿1 小时前
每天一个前端小知识 Day 21 - 浏览器兼容性与 Polyfill 策略
前端
百锦再1 小时前
Vue中对象赋值问题:对象引用被保留,仅部分属性被覆盖
前端·javascript·vue.js·vue·web·reactive·ref
jingling5551 小时前
面试版-前端开发核心知识
开发语言·前端·javascript·vue.js·面试·前端框架