You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rocket.rs EventStream!宏编译报错:$crate::_typed_stream相关错误

解决Rocket.rs EventStream!宏重装Rust后编译错误

错误信息

$crate::_typed_stream宏展开时,+左侧应为路径、期望表达式却找到+

核心原因

重装Rust后,Rocket版本与当前Rust工具链版本不兼容,或依赖缓存残留导致版本冲突,触发宏展开语法错误。

解决步骤

  • 检查Rust工具链与Rocket版本兼容性
    Rocket不同版本对Rust工具链有明确要求(如Rocket 0.5需Rust 1.65+),先查看当前工具链版本:

    rustc --version
    

    若版本不匹配,调整工具链:

    # 示例:安装并切换到1.70.0版本
    rustup install 1.70.0
    rustup default 1.70.0
    

    或升级Rocket到兼容当前工具链的版本。

  • 清理依赖缓存并重新构建
    重装后残留的旧依赖缓存可能引发冲突,执行:

    cargo clean
    cargo update
    cargo build
    
  • 规范EventStream!宏的使用语法
    确保宏的使用符合当前Rocket版本要求,以Rocket 0.5为例:

    use rocket::response::stream::{EventStream, Event};
    use rocket::tokio::time::{interval, Duration};
    
    #[get("/events")]
    async fn events() -> EventStream![] {
        let mut interval = interval(Duration::from_secs(1));
        EventStream! {
            loop {
                interval.tick().await;
                yield Event::json("ping");
            }
        }
    }
    

    检查宏的括号、yield语句等语法是否符合版本规范。

  • 锁定Cargo.toml依赖版本
    避免模糊版本号导致拉取不兼容依赖,示例配置:

    [dependencies]
    rocket = { version = "0.5.0-rc.3", features = ["json"] }
    
  • 修复rust-analyzer环境
    若之前卸载LLVM影响了编译环境,重新安装匹配版本的rust-analyzer:

    rustup component add rust-analyzer
    

内容的提问来源于stack exchange,提问作者user22437922

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 19:58:27