2 个版本
0.2.1 | 2021 年 2 月 2 日 |
---|---|
0.2.0 | 2021 年 1 月 31 日 |
0.1.1 |
|
0.1.0 |
|
#1762 in 文本处理
12KB
125 行
names-changer
将 SQL 方案的名称从驼峰式转换为蛇形。
以 str 为数据。此 crate #[names_changer]
提供了 trait 方法 .camel_to_snake()
,将名称从驼峰式转换为蛇形。该 trait 搜索匹配该模式的单词并将它们转换为蛇形。
入门
首先,您必须将此依赖项添加到您的 Cargo.toml
[dev-dependencies]
names-changer = "0.2.1"
此外,您必须使用 use
语句导入过程宏
use names_changer::NamesChanger;
示例用法
#[cfg(test)]
mod tests {
use names_changer::NamesChanger;
// Not needed for this example, but useful in general
use super::*;
#[test]
fn test_name_change() {
let content = "TABLE ClientTokensRef IS 'text';";
let change_content = content.camel_to_snake();
assert_eq!("TABLE client_tokens_ref IS 'text';", change_content)
}
}
为什么是它?
这是为了更新包含大写字母的旧 SQL 方案名称,例如。
#[cfg(test)]
mod tests {
use names_changer::NamesChanger;
use heck::SnakeCase;
#[test]
fn test_names_changer_to_snake_case() {
let content = "TABLE ClientTokensRef IS 'text';";
assert_eq!("TABLE client_tokens_ref IS 'text';", content.camel_to_snake())
}
#[test]
fn test_classic_to_snake_case() {
let content = "TABLE ClientTokensRef IS 'text';";
assert_eq!("table_client_tokens_ref_is_text", content.to_snake_case()())
}
}
更新内容
0.2.1
- 修复了跳过小词的问题,例如“idExt”,“idEx”,“dE”。
0.2.0
- 修复了方法名称问题
- 添加了对没有空格的段的递归处理:从“(ClientRefA (ClientRefB (ClientRefC ((ClientRefE (id)))))”我们得到“(client_ref_a (client_ref_b (client_ref_c ((client_ref_e (id)))))”
- 添加了测试
case
crate(存在缩写词问题)已被heck
替换
缺点:需要大量资源,未优化。
待办事项
- 修复警告
- 优化代码
- 添加异步处理?
许可证
此项目受以下许可证之一许可:
- Apache 许可证 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
依赖关系
~2.7–3.5MB
~62K SLoC