#future #v0 #兼容性 #compat # #版本 #不同

futures-compat

不同版本的Future之间的兼容层

2个版本

使用旧Rust 2015

0.0.1 2018年5月2日
0.0.0 2018年4月6日

#9 in #兼容

MIT许可协议

19KB
447

futures-compat

这是[futures] v0.1和v0.2之间的兼容层。它提供了实现,允许从v0.1实现的类型作为v0.2的Future使用,反之亦然。

注意:任务本地数据实际上不起作用,要让其工作需要糟糕的不安全黑客技术。如果需求足够,可能可以完成。

示例

将v0.1 Future作为v0.2使用

extern crate futures_compat;
use futures_compat::futures_01::FutureInto02;

let futv01 = some_lib_that_hasnt_upgraded();

let futv02 = futv01.into_02_compat()
    .map(|val| {
        println!("map from v0.2! {:?}", val);
        Ok(())
    });

// spawn in a futures 0.2 executor

将v0.2 Future作为v0.1使用

extern crate futures_compat;
use futures_compat::futures_01::FutureInto01;

let futv02 = some_lib_using_the_new_hotness();
let exec = get_my_current_executor();

let futv01 = futv02.into_01_compat(exec)
    .map(|val| {
        println!("map from v0.1! {:?}", val);
        Ok(())
    });

// spawn in a futures 0.1 executor
futv01.wait().unwrap();

依赖

~660KB
~11K SLoC