2 个版本
使用旧的 Rust 2015
0.0.2 | 2018年3月29日 |
---|---|
0.0.1 | 2018年3月29日 |
#2471 在 Rust 模式
36 每月下载量
在 conform-derive 中使用
5KB
50 行
Conform
Rust 宏:原地转换结构体字符串字段。
受 conform
包(Go 语言)启发。
ShakaCode
如果您需要帮助开发项目并优化,ShakaCode 可帮助您将应用程序的可靠性和性能提升到新的水平。
如果您是 Rust / ReScript / TypeScript / Ruby on Rails 项目的开发者,我们正在招聘!
安装
添加到 Cargo.toml
[dependencies]
conform = "x.x.x"
conform-derive = "x.x.x"
其中 x.x.x
是 crate 的当前版本。
用法
示例
extern crate conform;
#[macro_use]
extern crate conform_derive;
use conform::Conform;
#[derive(Conform, Debug)]
struct User {
#[conform(trim)]
name: String,
#[conform(trim, lower)]
email: Option<String>,
}
fn main() {
let mut user = User {
name: " Alex Fedoseev ".to_string(),
email: " [email protected]".to_string(),
};
user.conform();
println!("{:?}", user);
// Prints: User { name: "Alex Fedoseev", email: "[email protected]" }
}
conform
仅适用于 String
或 Option<String>
类型的字段。
let
绑定必须是可变的。
与验证器一起使用
您可以使用 conform
与 validator
一起使用
match user.conform().validate() {
Ok(_) => /* save `user` to DB */,
Err(err) => /* handle validation `err` */,
}
见 完整示例.
转换
trim
删除前后空白。
" foo " -> "foo"
trim_left
删除前空白。
" foo " -> "foo "
trim_right
删除后空白。
" foo " -> " foo"
lower
将任何大小写转换为小写,忽略分隔符。
"Foo-Bar" -> "foo-bar"
upper
将任何大小写转换为大写,忽略分隔符。
"Foo-Bar" -> "FOO-BAR"
sentence
将任何大小写转换为传统句子大小写,不首字母大写。
"Foo Bar" -> "foo bar"
title
将任何大小写转换为标题大小写,每个单词都大写。
"foo bar" -> "Foo Bar"
camel
将任何大小写转换为 camelCase。
"foo bar" -> "fooBar"
pascal
将任何大小写转换为 PascalCase。
"foo bar" -> "FooBar"
kebab
将任何大小写转换为 kebab-case。
"Foo Bar" -> "foo-bar"
train
将任何大小写转换为 Train-Case。
"foo bar" -> "Foo-Bar"
snake
将任何大小写转换为 snake_case。
"Foo Bar" -> "foo_bar"
constant
将任何大小写转换为 CONSTANT_CASE。
"Foo Bar" -> "FOO_BAR"
许可证
MIT。
依赖项
~28KB