use supply::request::Req3;
use supply::{Lt0, Provider, RequestExt, Want};
struct Demo {
a: u8,
b: f32,
c: bool,
}
impl Provider for Demo {
type Lifetimes = Lt0;
fn provide<'r>(&'r self, want: &mut dyn Want<'r>) {
want.provide_value(self.a)
.provide_value(self.b)
.provide_value(self.c);
}
}
#[test]
fn example() {
let demo = Demo {
a: 3,
b: 7.8,
c: true,
};
let Req3(bool, num, float) = <Req3<bool, u8, f32>>::request(&demo);
assert_eq!(num, Some(3));
assert_eq!(float, Some(7.8));
assert_eq!(bool, Some(true));
}