use structbuilder_derive::*; #[derive(StructBuilder)] struct LifetimesStruct<'a> { thing1: &'a str, } #[test] fn test_it_compiles() {} #[test] fn test_accessors() { let ltstruct = LifetimesStruct::new("this is a string!"); assert_eq!(ltstruct.thing1(), "this is a string!"); } #[derive(StructBuilder)] struct LifetimesStructMulti<'a, 'b> { a_str: &'a str, a_borrowed_usize: &'b usize, an_owned_string: String, an_optional_str: Option<&'a str> } #[test] fn test_multi() { let the_usize = 100usize; let ltstruct = LifetimesStructMulti::new("a", &the_usize, String::from("c")); assert_eq!(ltstruct.a_str(), "a"); assert_eq!(ltstruct.a_borrowed_usize, &100); assert_eq!(ltstruct.an_optional_str().as_ref(), None); }