3 个不稳定版本
| 0.3.2 | 2021年5月31日 |
|---|---|
| 0.3.0 | 2021年4月20日 |
| 0.2.1 | 2021年4月11日 |
#999 in 开发工具
1,627 每月下载量
在 3 crates 中使用
38KB
674 行
fix-getters-rules
此软件包包含用于 fix-getters 工具的规则定义。
有关 fix-getters 的更多信息,请参阅工作空间文档。
规则
rules 适用于
- 文件系统目录条目,以确定是否处理文件或跳过目录分支。这需要
featuredir-entry(默认启用)。 - 函数名称。
功能
dir-entry— 目录条目过滤规则。此功能默认启用。如果您的用例不同,请使用default-features = false。
函数名称规则
最初的想法是遵守 Rust getter 方法的命名约定
一个用于获取字段当前值的
foo(&self) -> &T方法。
一般规则
这些规则基于函数名称和返回类型的知识。有关返回确切一个 bool 的 get 函数的详细信息,请参阅下一章。
如果满足以下条件,则认为 get 函数符合移除 get 前缀的条件:
-
函数以
get_开头。 -
后缀不是 Rust 关键字,否则会导致无效代码。
例如:保留
get_as、get_false等不变。 -
该方法会导致与其他类似方法不一致。
例如:一个具有
structValue的结构体,并包含一个get_mut方法来获取底层值作为可变引用,get_optional方法用于获取底层值,其形式为Option<T>,以及get_some方法用于获取底层值,其值始终被定义。请参阅
RESERVED,详见function.rs。 -
后缀不是替换列表的一部分。这包括一些Rust关键字。
例如:将
get_type替换为type_。请参阅
EXACT_SUFFIX_SUBSTITUTES,详见function.rs。
另一个规则被应用于统一形式为 get_something_mut 的函数名称。此规则将 get_something_mut 和 get_mut_something 都重命名为 something_mut。
fix-getters 工具还根据函数签名应用选择性规则。请参阅 本 README 中的专用章节。
返回一个确切值 bool 的函数
返回 bool 的获取函数通常应使用 is_suffix 形式,这在用作条件时读起来很自然。例如。
if event.is_serialized() {
...
}
实现了以下附加规则。
第一个标记替换
当后缀以动词开头时,通常会进行变形。例如。
get_emit_eos->if element.emits_eos()。
BOOL_FIRST_TOKEN_SUBSTITUTES 在 function.rs 中列出了动词及其匹配的替换,还包括其他情况,例如
get_always_...->must_always_...。get_focus->gets_focus。
特殊第一个标记
情态动词应保持不变,不应使用 is 前缀。例如。
get_can_focus->can_focus。get_must_...->must_...。
这同样适用于已经变形的动词。例如。
get_has_...->has_...。
请参阅 BOOL_FIRST_TOKEN_NO_PREFIX,详见 function.rs。
精确后缀替换
在某些情况下,语义要求只有当整个后缀与一个值匹配时才进行替换。例如。
get_result->result. 既不应该是if a.is_result(),也不应该是if a.results()。get_visibility->is_visible既不应该是if a.is_visibility(),也不应该是if a.visibility()。
请参见function.rs中的BOOL_EXACT_SUBSTITUTES。
get_is 前缀
最后,如果已经存在,则不应重复使用is前缀
get_is_active->is_active。
检测返回精确一个bool的函数
Rust函数的返回类型通常不是显式的。在重命名get函数调用点(见fix-getters-calls)时,必须推断返回类型。在可能的情况下,前一章中描述的规则将被反转,并使用额外的启发式方法:当get函数后缀的第一个标记以able结尾时,该函数被认为返回一个bool。例如。
get_seekable->is_seekable。
许可证
此软件包根据您的选择许可以下任一项:
- Apache License,版本2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 https://open-source.org.cn/licenses/MIT)
。
依赖关系
49KB