| use derive_getters::Getters; |
| struct LifetimeAnnotated<'a> { |
| impl<'a> LifetimeAnnotated<'a> { |
| pub fn new<T: Into<String>>(v1: u64, v2: T, buf: &'a [u8]) -> Self { |
| struct MultiAnnotated<'a, 'b, 'c, T> { |
| impl<'a, 'b, 'c, T> MultiAnnotated<'a, 'b, 'c, T> { |
| pub fn new(v1: &'a str, v2: &'b [u8], v3: &'c T) -> Self { |
| MultiAnnotated { v1, v2, v3 } |
| let buffer: [u8; 12] = [88; 12]; |
| let la = LifetimeAnnotated::new(44, "Annot", &buffer); |
| assert!(*la.val1() == 44); |
| assert!(la.val2() == "Annot"); |
| assert!(la.buffer() == &buffer); |
| let ma = MultiAnnotated::new("Hello", &buffer, >); |
| assert!(ma.v1() == "Hello"); |
| assert!(ma.v2() == &buffer); |