Skip to content

Instantly share code, notes, and snippets.

@Playgirlkaybraz11
Forked from ccmmff11447722/playground.rs
Last active July 10, 2024 17:44
Show Gist options
  • Save Playgirlkaybraz11/ee7242838c39c56dfa645344ebb0dc9b to your computer and use it in GitHub Desktop.
Save Playgirlkaybraz11/ee7242838c39c56dfa645344ebb0dc9b 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
Author

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