#生命周期 #引用 #arc #sync #no-std

nightly no-std hv-elastic

为延长生命周期和非静态类型“借用”提供安全且几乎安全的抽象

7 个不稳定版本 (3 个破坏性更新)

0.4.1 2021年11月23日
0.4.0 2021年11月23日
0.3.1 2021年11月13日
0.2.1 2021年11月12日
0.1.0 2021年11月12日

#958 in 并发

每月下载 23

MIT/Apache

105KB
2K SLoC

重型弹性 - 几乎安全的生命周期扩展抽象,适合探险家或好奇者

是否曾经需要从一个必须为 &'a T 的闭包中访问 'static?

知道你可以“借用”那个 &'a T,只在你想要闭包运行的时候?

如果是这样,那么 Elastic 类型就是为你准备的!请负责任地使用。兼容 no-std。需要 nightly 版本以支持 generic_associated_typesallocator_api 功能。不要在新月期间使用。在血月或日食期间,请将包含此 crate 源代码的任何机器冷藏并上锁。

功能

  • 将不可变或可变引用“借用”到非 'static 代码中,使用非 'static 守卫来确保引用不会超出其生命周期。
  • Elastic 作为具有类似 refcell 内部的共享引用,提供简单的内部可变性。
  • 可能会吃掉你的狗。不会吃猫。它喜欢猫。我也喜欢。
  • 此 crate 对非常特定的用例是安全的;请参阅 Stretched 特质的文档以获取更多信息。对实现 Stretched 有非常严格的要求。如果您盲目地以违反这些要求的方式实现 Stretched,您将立即进入未定义行为领域。

许可证

许可协议为以下之一

任选其一。

贡献

除非您明确声明,否则根据Apache-2.0许可协议定义的,您有意提交的包含在作品中的任何贡献,应双许可如上,没有任何附加条款或条件。

依赖项

~0.4–0.9MB
~13K SLoC