easylazy

Crates.ioeasylazy
lib.rseasylazy
version0.2.0
sourcesrc
created_at2023-11-09 15:54:56.39715
updated_at2024-07-03 17:44:48.297982
descriptionEasy lazy initialization of variables
homepagehttps://github.com/ciresnave/easylazy
repositoryhttps://github.com/ciresnave/easylazy
max_upload_size
id1030246
size11,946
CireSnave (ciresnave)

documentation

https://github.com/ciresnave/easylazy

README

NOTE: Do not use this! LazyCell has been standardized and is better!

EasyLazy - Lazy initialization made easy

Looking at the available options for lazy initialization, I found that the most required jumping through odd, unnecessary hoops. EasyLazy aims to make lazy initialization of a variable lightweight and easy.

EasyLazy has only 3 requirements:

  • T must implement Clone
  • T must implement Default with a cheap operation
  • The Lazy variable must be mutable so that it can be initialized

Usage

use easylazy::Lazy;
let mut my_lazy_variable = Lazy::new(Box::new(|| 10));
// my_lazy_variable is uninitialized here
assert_eq!(my_lazy_variable.get(), 10);
my_lazy_variable.get_mut() = 20;
assert_eq!(my_lazy_variable.get(), 20);
Commit count: 21

cargo fmt