Struct Lazy
struct Lazy<T, F = fn() -> T> { ... }
A value which is initialized on the first access.
Example
use Lazy;
let lazy: = new;
println!;
println!;
println!;
// Prints:
// ready
// initializing
// 92
// 92
Implementations
impl<T, F> Lazy<T, F>
const fn new(init: F) -> Lazy<T, F>Creates a new lazy value with the given initializing function.
Example
#fn into_value(this: Lazy<T, F>) -> Result<T, F>Consumes this
Lazyreturning the stored value.Returns
Ok(value)ifLazyis initialized andErr(f)otherwise.
impl<T, F: FnOnce() -> T> Lazy<T, F>
fn force(this: &Lazy<T, F>) -> &TForces the evaluation of this lazy value and returns a reference to the result.
This is equivalent to the
Derefimpl, but is explicit.Example
use Lazy; let lazy = new; assert_eq!; assert_eq!;fn force_mut(this: &mut Lazy<T, F>) -> &mut TForces the evaluation of this lazy value and returns a mutable reference to the result.
This is equivalent to the
DerefMutimpl, but is explicit.Example
use Lazy; let mut lazy = new; assert_eq!; assert_eq!;fn get(this: &Lazy<T, F>) -> Option<&T>Gets the reference to the result of this lazy value if it was initialized, otherwise returns
None.Example
use Lazy; let lazy = new; assert_eq!; assert_eq!; assert_eq!;fn get_mut(this: &mut Lazy<T, F>) -> Option<&mut T>Gets the mutable reference to the result of this lazy value if it was initialized, otherwise returns
None.Example
use Lazy; let mut lazy = new; assert_eq!; assert_eq!; assert_eq!;
impl<P, T> Receiver for Lazy<T, F>
impl<T> Any for Lazy<T, F>
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for Lazy<T, F>
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for Lazy<T, F>
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> From for Lazy<T, F>
fn from(t: T) -> TReturns the argument unchanged.
impl<T, F = fn() -> T> Freeze for Lazy<T, F>
impl<T, F = fn() -> T> Sync for Lazy<T, F>
impl<T, F> Send for Lazy<T, F>
impl<T, F> Unpin for Lazy<T, F>
impl<T, F> UnsafeUnpin for Lazy<T, F>
impl<T, F> UnwindSafe for Lazy<T, F>
impl<T, F: FnOnce() -> T> Deref for Lazy<T, F>
fn deref(self: &Self) -> &T
impl<T, F: FnOnce() -> T> DerefMut for Lazy<T, F>
fn deref_mut(self: &mut Self) -> &mut T
impl<T, F: RefUnwindSafe> RefUnwindSafe for Lazy<T, F>
impl<T, U> Into for Lazy<T, F>
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom for Lazy<T, F>
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for Lazy<T, F>
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>
impl<T: Default> Default for Lazy<T>
fn default() -> Lazy<T>Creates a new lazy value using
Defaultas the initializing function.
impl<T: fmt::Debug, F> Debug for Lazy<T, F>
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result