keypath 0.2.0

Derivable, type-safe Swift-style keypaths.
Documentation
use keypath::{keypath, Keyable};

#[derive(Keyable)]
struct DemoPerson {
    name: String,
    magnitude: f64,
    size: Size,
}

#[derive(Keyable)]
struct Size {
    big: bool,
    heft: u8,
}

#[test]
fn keypath() {
    let mut person = DemoPerson {
        name: "coco".to_string(),
        magnitude: 42.0,
        size: Size {
            big: true,
            heft: 200,
        },
    };

    let path = keypath!(DemoPerson.size.heft);
    assert_eq!(person[&path], 200);
    person[&path] = 15;
    assert_eq!(person.size.heft, 15);
}