У меня есть некоторый код, где у меня есть много экземпляров полностью определенного синтаксиса;в качестве примера:
mod hal {
pub trait Backend {
type Device;
}
}
mod back {
pub struct Backend {}
impl ::hal::Backend for Backend {
type Device = i32;
}
}
fn main() {
let d: back::Backend::Device = 0;
}
детская площадка
Во избежание таких ошибок, как:
error[E0223]: ambiguous associated type
--> src/main.rs:16:12
|
16 | let d: back::Backend::Device = 0;
| ^^^^^^^^^^^^^^^^^^^^^ ambiguous associated type
|
= note: specify the type using the syntax `<back::Backend as Trait>::Device`
Есть ли хороший способ, которым яможет псевдоним SomeType as SomeTrait
?Затем, где бы ни требовался этот экземпляр полностью определенного синтаксиса, я могу написать:
<S>::associated_fn(...)
Обратите внимание, что эта ошибка не возникает, потому что на самом деле существует несколько реализаций определения некоторой черты (котороеэто то, что FQS должен обрабатывать, в соответствии с Rust Programming Language ).