Field reference (like a member pointer to non-static data field in C++) for Rust
Example:
```Rust
extern crate field_ref;
use field_ref::{Field, FieldMut};
struct Foo(u32, u32, f64); struct Bar { foo: Foo, x: u32, }
let fr1 = fieldrefof!(Bar => x); let fr2 = fieldrefof!(Bar => foo); let fr3 = fieldrefof!(Foo => 1); let fr4 = fieldrefof!(Bar => foo => 0);
let mut bar = Bar { foo: Foo(10, 20, 0.5), x: 30 };
asserteq!(bar.field(fr1), &30); asserteq!(fr1.get_ref(&bar), &30);
*bar.fieldmut(fr1) = 100; asserteq!(bar.x, 100);
*fr1.getmut(&mut bar) = 200; asserteq!(bar.x, 200);
asserteq!(bar.field(fr2.chain(fr3)), &20); asserteq!(bar.field(fr4), &10); ```