hooks/utils/
pin.rs

1use std::pin::Pin;
2
3pub fn pin_project_or_insert_with<T>(
4    mut option: Pin<&mut Option<T>>,
5    f: impl FnOnce() -> T,
6) -> Pin<&mut T> {
7    if option.is_none() {
8        option.set(Some(f()));
9    }
10
11    option.as_pin_mut().unwrap()
12}