Rust 个人代码风格规范
导入规范
类型直接导入,函数带模块名
- 结构体、枚举、常量等类型直接导入名称使用
- 函数只导入其所在模块,通过
module::func()调用
1 | |
避免遮蔽标准库名称
- 如果导入的名称与
std::prelude::*中的同名项冲突,使用时应显式带路径前缀 - 如果导入的模块名与
std::*下同名模块冲突,应使用完整路径
1 | |
可选:减少不必要的导入
- 标准库中存在同路径名称时,可直接写全路径:
tokio::net::TcpStream::connect(addr) - 只使用一次的函数,可不导入直接写绝对路径:
my_crate::my_module::one_off_func()
相对路径导入
- 同级/父级模块酌情使用
self::、super::,跨多层时使用crate::
模块文件结构
- 不使用
mod.rs,改用「同名 .rs 文件 + 同名目录」的方式组织子模块
1 | |
缩写处理
- 缩写词在类型名中视为普通单词:
HttpClient(不是HTTPClient)、JsonParser(不是JSONParser) - 函数/变量名中全小写:
parse_json(不是parse_JSON)
Rust 个人代码风格规范
https://neo.mufanc.xyz/posts/62863/