| Crates.io | orz |
| lib.rs | orz |
| version | 0.25.0 |
| created_at | 2023-02-01 02:03:00.165089+00 |
| updated_at | 2025-09-02 11:42:56.929661+00 |
| description | Derive `field_values()` to get Vec |
| homepage | |
| repository | |
| max_upload_size | |
| id | 773170 |
| size | 10,838 |
为结构体派生 field_values() 方法,返回所有字段值的 Vec<String>。支持跳过字段和转换。
[dependencies]
derive-field-values = "0.25.0"
use derive_field-values::FieldValues;
#[derive(FieldValues)]
struct Person {
name: String,
age: u32,
email: String,
}
let p = Person {
name: "Alice".to_string(),
age: 30,
email: "alice@example.com".to_string(),
};
assert_eq!(p.field_values(), vec!["Alice", "30", "alice@example.com"]);
#[derive(FieldValues)]
struct User {
username: String,
#[field_values(skip)]
password: String,
}
#[derive(FieldValues)]
struct Log {
level: String,
#[field_values(transform = "to_uppercase")]
message: String,
#[field_values(transform = "debug")]
metadata: Vec<i32>,
}
#[derive(FieldValues)]
struct LogLine<'a> {
level: &'a str,
message: &'a str,
}
let log = LogLine { level: "INFO", message: "Hello" };
assert_eq!(log.field_values_ref(), vec!["INFO", "Hello"]);