13 releases
0.1.11 | Nov 4, 2024 |
---|---|
0.1.9 | Sep 3, 2024 |
0.1.8 | Jun 2, 2024 |
0.1.5 | Mar 1, 2024 |
0.1.2 | Oct 19, 2023 |
#388 in Data structures
527 downloads per month
Used in 2 crates
(via lcax_convert)
31KB
326 lines
field_access
A library for dynamic access to struct fields with #![no_std]
support.
Field access is enabled by the FieldAccess
trait which can be implemented
using a derive macro by the same name.
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 features
alloc
: Provide methods to interact with types from the Rust core allocation and collections library includingString
andVec<T>
. This feature pulls in thealloc
library as a dependency and is enabled by default.derive
: Provide a derive macro for theFieldAccess
trait. This feature is enabled by default.
License
The source code of field_access is licensed under either of Apache License, Version 2.0 or MIT license at your option.
Dependencies
~110KB