Rust 工程配置

news/2024/6/29 18:51:19 标签: 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,
    }
}

http://www.niftyadmin.cn/n/5315170.html

相关文章

vue 学习 -- day42(vue3 — watchEffect 函数)

watchEffect 最大的特点:不告诉你它监视的是谁watchEffect 默认开启了 immediate: true (初始化的时候立即执行一次) 总结 watch的套路是:既要指明监视的属性,也要指明监视的回调。 watchEffect的套路是:…

kafka连接失败时springboot项目启动停机问题

问题:springboot整合kafka,作为消费端,对端的kafka系统是在生产环境,在本地开发测试时配置了对端的生产环境的kafka地址。因为开发环境和对端生产环境是不通的,所以连接肯定是失败的,kafka的连接失败导致sp…

S32826;autotaxin抑制剂1096770-84-1科研

S32826是一种autotaxin抑制剂,其药物特性主要表现在以下几个方面: 1. 高活性:S32826能够高效抑制autotaxin的活性,显著抑制的生长和扩散。 2. 选择性高:与其他抑制剂相比,S32826具有更高的选择性和活性&a…

深度解析qt核心机制:信号槽的多线程行为与对象的线程依附性

对象的线程依附性 每一个学过C以及系统编程的程序员,对于变量会与特定线程有关联都会感到不可思议;在qt中所说的对象的线程依附性,只是针对继承自QObject的对象而言的;对象的线程依附性,并不是代表真的某个底层线程才…

git克隆失败提示RPC failed的解决方法

现象 $ git clone https://github.com/guillemj/dpkg.git Cloning into dpkg... remote: Enumerating objects: 113312, done. remote: Counting objects: 100% (18045/18045), done. remote: Compressing objects: 100% (3915/3915), done. error: RPC failed; curl 18 trans…

【现代密码学】笔记3.1-3.3 --规约证明、伪随机性《introduction to modern cryphtography》

【现代密码学】笔记3.1-3.3 --规约证明、伪随机性《introduction to modern cryphtography》 写在最前面私钥加密与伪随机性 第一部分密码学的计算方法论计算安全加密的定义:对称加密算法 伪随机性伪随机生成器(PRG) 规约法规约证明 构造安全…

强化学习的数学原理学习笔记 - 值函数近似(Value Function Approximation)

文章目录 概览:RL方法分类值函数近似(Value function approximation)Basic idea目标函数(objective function)优化算法(optimization algorithm) Sarsa / Q-learning with function approximati…

Github 2024-01-06 开源项目日报Top10

根据Github Trendings的统计,今日(2024-01-06统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目3Java项目1TypeScript项目1HTML项目1Go项目1HCL项目1Rust项目1Jupyter Notebook项目1非开发语言项目…