То есть, я просто хочу реализовать черту внутри и предоставить структуру, другими словами, я ищу способ не нуждаться в строке use foo::Internal;
ниже.
mod foo {
pub struct Foo {}
pub trait Internal {
fn foo(&self);
}
impl Internal for Foo {
fn foo(&self) {}
}
}
use foo::Internal; // <- !!!
fn main() {
let f = foo::Foo {};
f.foo();
}
Детская площадка
Теперь я подозреваю, что это невозможно, и если это так, то каковы мои альтернативы? Есть ли способ обернуть все в непрозрачный новый тип, чтобы все черты были сплющены и выставлены вместо этого?
Пропуск вышеупомянутой линии приводит к скважинеПодсказка об известной ошибке:
help: следующая черта реализована, но не входит в область действия, возможно, добавьте для нее `use`
К которой обращались много разно в основном это касается случаев, когда черта предназначена для реализации пользователем, вместо этого здесь мне не нужна способность impl foo::Internal for SomeUserType
.