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