Skip to content

Instantly share code, notes, and snippets.

@ccmmff11447722
Forked from rust-play/playground.rs
Created August 7, 2019 09:01
Show Gist options
  • Save ccmmff11447722/306b203c370360f3b70bf546b0b5eaf1 to your computer and use it in GitHub Desktop.
Save ccmmff11447722/306b203c370360f3b70bf546b0b5eaf1 to your computer and use it in GitHub Desktop.
Code shared from the Rust Playground
struct Foo<T, C> where C: Fn() -> T {
make_t: C,
value: Option<T>,
}
impl<T, C> Foo<T, C> where C: Fn() -> T {
fn new(make_t: C) -> Foo<T, C> {
Foo {
make_t,
value: None
}
}
fn value(&mut self) -> &T {
self.value
.get_or_insert_with(&self.make_t)
}
}
fn main() {
let mut bar = Foo::new(|| 3);
println!("{}", bar.value());
}
@Playgirlkaybraz11
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment