Можно ли вообще определить функции внутри признаков как имеющие impl Trait
возвращаемые типы? Я хочу создать признак, который может быть реализован несколькими структурами, чтобы функции new()
всех из них возвращали объект, к которому все они могут быть использованы одинаково, без необходимости писать код, специфичный для каждого из них.
#![feature(conservative_impl_trait)]
trait A {
fn new() -> impl A;
}
Однако я получаю следующую ошибку:
impl Trait
не допускается вне функций и свойств возвращаемого метода
Является ли это просто ограничением текущей реализации impl Trait
в Rust или я использую ее неправильно?