- 在FlowList和FlowRunLogs页面添加PageHeader组件 - 统一ScheduleJobs页面的查询表单样式为内联布局 - 为表格分页添加showSizeChanger选项 - 新增Rust代码规范文档
2.3 KiB
2.3 KiB
Rust 复杂文件代码规范顺序(紧凑版)
-
文件说明
- 使用
//!模块文档注释,描述文件或模块作用。 - 必须位于文件最顶部。
- 使用
-
版权声明(可选)
- 如果项目需要版权信息,放在文档注释之后。
-
外部依赖和模块引入(use)
- 所有
use必须放在文件顶部,不能出现在中间或底部。 - 引入顺序:标准库 -> 当前 crate 模块 -> 父模块 -> 第三方库
- 每一类之间空 1 行,同一类内部按字母序排列
- 所有
use不允许添加注释说明分组 - 紧凑要求:单行导入尽量合并,不要强行拆成多行
- 所有
-
子模块声明(mod)
- 写在所有
use之后 pub mod、mod都在这里集中声明
- 写在所有
-
常量定义(const / static)
- 必须在类型定义之前
- 命名使用
SCREAMING_SNAKE_CASE - 紧凑要求:值较短时保持单行,不要拆行
-
类型别名(type)
- 放在常量之后、结构体之前
-
结构体定义(struct)
- 放在文件的类型区域开头
- 所有
struct必须集中写在这里,不允许与impl穿插 - 紧凑要求:字段数量不多时保持单行;字段多时每行一个
-
枚举定义(enum)
- 紧随结构体之后,集中定义所有枚举类型
- 紧凑要求:简单枚举保持单行,复杂枚举多行
-
联合体定义(union)
- 如果需要,放在枚举之后
-
Trait 定义
- 紧跟在所有数据类型(struct/enum/union)之后
-
实现块(impl Struct)
- 必须放在类型定义和 Trait 定义之后
- 内部方法顺序:构造函数 -> 公共方法 -> 私有方法
- 紧凑要求:函数体内调用链、元组、match 分支若能在一行内写清楚,则保持单行
-
Trait 实现(impl Trait for Struct)
- 紧跟对应的
impl Struct之后 - 不要与其他类型的实现混在一起
- 紧跟对应的
-
自由函数(fn,不属于任何 impl)
- 文件中独立函数放在最后
- 按功能分组,可以用注释分隔
- 紧凑要求:参数少的函数调用保持单行
-
测试模块(#[cfg(test)] mod tests)
- 永远放在文件最末尾
- 仅用于单元测试代码