Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct CandyMachine<'a, T: 'a> {
- candyfn: &'a (Fn() -> T)
- }
- impl<'a,T> CandyMachine<'a,T> {
- fn new<Map>(f: &'a Map) -> CandyMachine<'a,T> where Map: Fn() -> T { CandyMachine { candyfn: f } }
- fn candy(&self) -> T { (self.candyfn)() }
- }
- struct Candy {}
- impl Candy {
- fn candy() -> String { "shleck".to_string() }
- }
- fn main() {
- let m = CandyMachine::new(&Candy::candy);
- println!("Candy is {}.", m.candy());
- }
Add Comment
Please, Sign In to add comment