Guest User

Untitled

a guest
Nov 20th, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.42 KB | None | 0 0
  1. struct CandyMachine<'a, T: 'a> {
  2. candyfn: &'a (Fn() -> T)
  3. }
  4. impl<'a,T> CandyMachine<'a,T> {
  5. fn new<Map>(f: &'a Map) -> CandyMachine<'a,T> where Map: Fn() -> T { CandyMachine { candyfn: f } }
  6. fn candy(&self) -> T { (self.candyfn)() }
  7. }
  8.  
  9. struct Candy {}
  10. impl Candy {
  11. fn candy() -> String { "shleck".to_string() }
  12. }
  13.  
  14. fn main() {
  15. let m = CandyMachine::new(&Candy::candy);
  16. println!("Candy is {}.", m.candy());
  17. }
Add Comment
Please, Sign In to add comment