genja-core-derive 0.1.0

Procedural macros for Genja task types, including derives for task metadata, subtasks, and wrapper dereferencing
Documentation
use genja_core_derive::{DerefMacro, DerefMutMacro};

trait DerefTarget {
    type Target;
}

#[derive(DerefMacro, DerefMutMacro)]
struct Values(Vec<String>);

impl DerefTarget for Values {
    type Target = Vec<String>;
}

#[test]
fn deref_macros_read_and_mutate_wrapped_value() {
    let mut values = Values(vec!["one".to_string()]);

    assert_eq!(values.as_slice(), ["one".to_string()]);

    values.push("two".to_string());

    assert_eq!(values.as_slice(), ["one".to_string(), "two".to_string()]);
}