Rust 告诉我导入未使用,然后同时告诉我应该进行导入

Rust tells me that an import is unused, and then in the very same breath tells me that I should make that import

代码如下:

use crate::rooms::room::RoomInterface;

pub mod dogroom {
    pub struct R;

    impl RoomInterface for R {

    }
}

这里是 /rooms/mod.rs:

pub mod room {

    //  Irrelevant stuff
    
    pub trait RoomInterface {
        // stuff
    }

    // stuff

}

这是它告诉我的内容:

我发现我导入了它要我导入的完全相同的东西,但它不起作用。

我几乎尝试了 use 关键字的所有排列组合,但我无法使它起作用。怎么回事?

uses 的范围是导入它们的模块,而不是它们所在的文件。 将导入移动到 dogroom 模块中:

pub mod dogroom {
    use crate::rooms::room::RoomInterface;

    pub struct R;

    impl RoomInterface for R {

    }
}

或者,您可能希望 dogroom 模块重新use 父模块中的所有内容:

use crate::rooms::room::RoomInterface;
pub mod dogroom {
    use super::*;

    pub struct R;

    impl RoomInterface for R {

    }
}