macro_rules! field_accessor {
(<$source:ty>$(::$field:tt)*) => { ... };
}Expand description
Creates a FieldAccessor that ensures both Field and
Accessor are pointing to the same field path.
ยงExample
use field_path::field_accessor;
use field_path::field_accessor::FieldAccessor;
struct Foo { value: i32 }
const FOO_FIELD_ACC: FieldAccessor<Foo, i32> = field_accessor!(<Foo>::value);
assert_eq!(FOO_FIELD_ACC.field.field_path(), "::value");
let mut foo = Foo { value: 42 };
assert_eq!(FOO_FIELD_ACC.accessor.get_ref(&foo), &42);
*FOO_FIELD_ACC.accessor.get_mut(&mut foo) = 999;
assert_eq!(foo.value, 999);