[−][src]Struct once_cell::sync::Lazy
A value which is initialized on the first access.
Example
#[macro_use] extern crate once_cell; use std::collections::HashMap; use once_cell::sync::Lazy; static HASHMAP: Lazy<HashMap<i32, String>> = sync_lazy! { println!("initializing"); let mut m = HashMap::new(); m.insert(13, "Spica".to_string()); m.insert(74, "Hoyten".to_string()); m }; fn main() { println!("ready"); ::std::thread::spawn(|| { println!("{:?}", HASHMAP.get(&13)); }).join().unwrap(); println!("{:?}", HASHMAP.get(&74)); // Prints: // ready // initializing // Some("Spica") // Some("Hoyten") }
Methods
impl<T, F: Fn() -> T> Lazy<T, F>
[src]
pub fn new(f: F) -> Lazy<T, F>
[src]
Creates a new lazy value with the given initializing function.
pub fn force(this: &Lazy<T, F>) -> &T
[src]
Forces the evaluation of this lazy value and
returns a reference to result. This is equivalent
to the Deref
impl, but is explicit.
Example
use once_cell::sync::Lazy; let lazy = Lazy::new(|| 92); assert_eq!(Lazy::force(&lazy), &92); assert_eq!(&*lazy, &92);
Trait Implementations
impl<T, F: Fn() -> T> Deref for Lazy<T, F>
[src]
impl<T: Debug, F: Debug + Fn() -> T> Debug for Lazy<T, F>
[src]
Auto Trait Implementations
impl<T, F> Send for Lazy<T, F> where
F: Send,
T: Send,
F: Send,
T: Send,
impl<T, F> Sync for Lazy<T, F> where
F: Sync,
T: Send + Sync,
F: Sync,
T: Send + Sync,
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From for T
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = !
🔬 This is a nightly-only experimental API. (
try_from
)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
🔬 This is a nightly-only experimental API. (
try_from
)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,