#生命周期 # #引用 #缩短 #扩展 #实现 #中止

ref-extended

通过缩短整个程序的生命周期来实现值的生命周期

2 个版本

0.2.1 2022年12月8日
0.2.0 2022年12月8日
0.1.3 2022年12月7日

#11 in #中止

每月 25 次下载
用于 async-component-winit

MIT 许可证

5KB
57

Ref Extended

通过缩短整个程序的生命周期来扩展引用的生命周期,使其与值的生命周期相同

何时使用?

  1. 您正在进行不涉及堆分配的编程(例如嵌入式编程),并且不想使用静态。
  2. 您运行了一些会自行退出进程而不返回的分歧函数。

示例

let mut a = 2_i32; // The lifetime of value itself(not reference) is 'static

// Safely extend lifetimes and abort after expression finish
ref_extended!(|&a| {
    identity::<&'static i32>(a); // This compiles
});

// Unreachable. Process abort

无运行时依赖