10 个版本

0.1.8 2024 年 6 月 2 日
0.1.7 2024 年 5 月 2 日
0.1.6 2024 年 4 月 2 日
0.1.5 2024 年 3 月 1 日
0.0.1 2023 年 10 月 16 日

445数据结构

Download history 132/week @ 2024-05-03 5/week @ 2024-05-10 15/week @ 2024-05-17 7/week @ 2024-05-24 194/week @ 2024-05-31 32/week @ 2024-06-07 6/week @ 2024-06-14 6/week @ 2024-06-21 13/week @ 2024-06-28 80/week @ 2024-07-05 4/week @ 2024-07-12 38/week @ 2024-07-19 55/week @ 2024-07-26 5/week @ 2024-08-02 67/week @ 2024-08-09 546/week @ 2024-08-16

674 每月下载量
2 个 crate 中使用 (通过 lcax_convert)

MIT/Apache

31KB
326

field_access

Build Status crates.io docs.rs License: Apache 2.0 License: MIT

一个支持 #![no_std] 的库,用于动态访问结构体字段。

通过同名的 derive 宏实现 FieldAccess trait 来启用字段访问。

use field_access::FieldAccess;

#[derive(FieldAccess)]
struct Foo {
    a: u8
}

let mut foo = Foo { a: 1 };

// Immutable field access.
if let Some(field) = foo.field("a") {
    assert_eq!(field.as_u8(), Some(1));
}

// Mutable field access.
if let Some(mut field) = foo.field_mut("a") {
    assert_eq!(field.replace(42u8), Some(1));
}

assert_eq!(foo.a, 42);

Cargo 功能

  • alloc: 提供与 Rust 核心分配和集合库中类型交互的方法,包括 StringVec<T>。此功能将 alloc 库作为依赖项并默认启用。
  • derive: 提供用于 FieldAccess trait 的 derive 宏。此功能默认启用。

许可证

field_access 的源代码根据您的选择在 Apache License,版本 2.0MIT 许可证 下许可。

依赖项

~110KB