【问题标题】:Importing the channel module from Tokio Core fails从 Tokio Core 导入通道模块失败
【发布时间】:2018-11-16 18:17:38
【问题描述】:

在 lib.rs 我有这个:

extern crate tokio_core;
use tokio_core::channel::{channel, Sender, Receiver};

最终出现此错误:

error[E0432]: unresolved import `tokio_core::channel`
 --> src/main.rs:2:17
  |
2 | use tokio_core::channel::{channel, Sender, Receiver};
  |                 ^^^^^^^ Could not find `channel` in `tokio_core`

查看tokio_core crate's lib.rs file,它像这样导出channel

#[doc(hidden)]
pub mod channel;

对于我的一生,我无法弄清楚为什么这不起作用。我在 Rust 1.29 和 1.30.1 上都试过这个。

【问题讨论】:

    标签: rust rust-tokio


    【解决方案1】:

    如果您查看channel.rs 的顶部,您会看到整个模块已被弃用,只有在您添加适当的功能时才可用:

    #![deprecated(since = "0.1.1", note = "use `futures::sync::mpsc` instead")]
    #![allow(deprecated)]
    #![cfg(feature = "with-deprecated")]
    

    但是,Cargo.toml 甚至不允许启用此功能,它apparently never did。事实上,整个板条箱现在已被弃用:

    弃用通知。

    此 crate 计划弃用,以支持 tokio.

    tokio-core 仍在积极维护中,但只会修复错误 应用。所有新功能的开发都发生在 tokio.

    如弃用通知中所述,请改用futures::sync::mpsc::channel

    【讨论】:

    • 哇。我根本没有看到这个弃用通知。不过,很高兴看到所有这些单独的 tokio-* 板条箱合并。
    • @GregMelton 像许多更大的项目一样,仍然会有多个 crate。大外观面向最终用户,较小的 crate 面向可重用的库。
    猜你喜欢
    • 2019-04-28
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    相关资源
    最近更新 更多