Advertisement
Guest User

Untitled

a guest
Aug 19th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.42 KB | None | 0 0
  1. struct Foo<T, C> where C: Fn() -> T {
  2. make_t: C,
  3. value: Option<T>,
  4. }
  5.  
  6. impl<T, C> Foo<T, C> where C: Fn() -> T {
  7. fn new(make_t: C) -> Foo<T, C> {
  8. Foo {
  9. make_t,
  10. value: None
  11. }
  12. }
  13.  
  14. fn value(&mut self) -> &T {
  15. self.value
  16. .get_or_insert_with(&self.make_t)
  17. }
  18. }
  19.  
  20. fn main() {
  21. let mut bar = Foo::new(|| 3);
  22.  
  23. println!("{}", bar.value());
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement