cgp-tests 0.5.0-beta3

Context-generic programming meta crate
Documentation
use cgp::prelude::*;

#[test]
pub fn test_slice_getter() {
    #[cgp_getter]
    pub trait HasFoo {
        fn foo(&self) -> &[u8];
    }

    #[cgp_context]
    #[derive(HasField)]
    pub struct App {
        pub bar: Vec<u8>,
    }

    delegate_components! {
        AppComponents {
            FooGetterComponent: UseField<Symbol!("bar")>,
        }
    }

    let context = App { bar: vec![1, 2, 3] };

    assert_eq!(context.foo(), &[1, 2, 3]);
}

#[test]
pub fn test_slice_auto_getter() {
    #[cgp_auto_getter]
    pub trait HasFoo {
        fn foo(&self) -> &[u8];
    }

    #[derive(HasField)]
    pub struct App {
        pub foo: Vec<u8>,
    }

    let context = App { foo: vec![1, 2, 3] };

    assert_eq!(context.foo(), &[1, 2, 3]);
}