3个不稳定版本

0.2.0 2024年7月3日
0.1.1 2024年7月3日
0.1.0 2023年11月9日

#670 in 算法

Download history 205/week @ 2024-07-01 35/week @ 2024-07-08

240 每月下载量

MIT 许可证

7KB
72

注意:请勿使用此!LazyCell 已标准化,并且更好!

EasyLazy - 简化懒初始化

在查看懒初始化的现有选项后,我发现最需要的操作跳过了许多不必要的圈子。EasyLazy旨在使变量的懒初始化轻量且简单。

EasyLazy只有3个要求

  • T必须实现Clone
  • T必须实现带有廉价操作的Default
  • 懒变量必须是可变的,以便可以初始化

用法

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);

lib.rs:

EasyLazy - 简化懒初始化

在查看懒初始化的现有选项后,我发现最需要的操作跳过了许多不必要的圈子。EasyLazy旨在使变量的懒初始化轻量且简单。

EasyLazy只有3个要求

  • T必须实现Clone
  • T必须实现带有廉价操作的Default
  • 懒变量必须是可变的,以便可以初始化

只要T是Send & Sync,Lazy就是Send & Sync。在假设您的Lazy变量是Send & Sync之前,请确保您的计算也是线程安全的。

无运行时依赖项