鉴于文件src/A/B/C.rs
存在,我会在文件src/D.rs
中写入什么use
语句,以便我可以A::B::C
访问C
?
我试过:use A::B::C
,但后来我不能把它称为A::B::C
. 我试过:use A::{B::C}
,但后来我只能将其称为B::C
。
mod A;
fn main() {
A::B::C::ModuleCfn();
}
以下是我尝试过的文件和模块:
src/A.rs =>
pub mod B;
src/A/B.rs =>
pub mod C;
src/A/B/C.rs =>
pub fn ModuleCfn() { }
假设我想参考:
actix_web_httpauth::extractors::bearer::BearerAuth
如
bearer::BearerAuth
和
actix_web_httpauth::headers::www_authenticate::bearer::Error
如
bearer::Error
这是不可能的,因为它需要这两个语句,它们相互冲突:
use actix_web_httpauth::extractors::bearer;
use actix_web_httpauth::headers::www_authenticate::bearer;
诚然,这是一个边缘情况,但对我来说,不可能在保留该命名空间的部分路径的同时指定命名空间的子集似乎很奇怪。
最合理的解决方案似乎是这样的:
use actix_web_httpauth::extractors::bearer as xbearer;
use actix_web_httpauth::headers::www_authenticate::bearer as ybearer;
...
xbearer::BearerAuth ...
ybearer::Error ...