orz

Crates.ioorz
lib.rsorz
version0.25.0
created_at2023-02-01 02:03:00.165089+00
updated_at2025-09-02 11:42:56.929661+00
descriptionDerive `field_values()` to get Vec of struct field values
homepage
repository
max_upload_size
id773170
size10,838
(MDZZDYXCMDZZDYXC)

documentation

https://docs.rs/orz

README

derive-field-values

Crates.io Docs

为结构体派生 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"]);
Commit count: 0

cargo fmt