https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=851b2bfc05ca384a4ca04e30c095f61a Типа такого. compare из этого крейта https://crates.io/crates/compare SortType - просто некоторый параметр по которому можно сортировать.
у тебя трейта Compare не хватает - добавь
Да, я заметил. Ищу как, впервые использую xD
Из функции сырой dyn возвращать нельзя, так как он не Sized. Возвращай либо Box<dyn Compare<Self>> либо &dyn Compare<Self>.
ему не нужен dyn Compare в том коде который показал он, не советуй пока лишнего
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=fc31c30d46d8735b0fbe8f6152475bf6 вот так решается то что ты скинул
Этот трейт не в топ 100, не получится в playground его заюзать видимо.
А ты точно хочешь этот крейт юзать?
Другого компаратора я и не нашел. Но не в этом суть. Хочется разобраться как такие вещи делаются в расте. У меня возникло такое ощущение, что полиморфизм в этом языке не очень поддерживается. И как такую задачу решить. associated type тоже пробовал. Ошибка: error[E0308]: mismatched types --> src\model\manage\sort\mod.rs:32:26 | 32 | .reduce(|c1, c2| c1.then(c2)) | ^^^^^^^^^^^ expected associated type, found struct `Then` | = note: expected associated type `<S as Sortable>::Comparator` found struct `Then<<S as Sortable>::Comparator, <S as Sortable>::Comparator>` = help: consider constraining the associated type `<S as Sortable>::Comparator` to `Then<<S as Sortable>::Comparator, <S as Sortable>::Comparator>` = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html
Обсуждают сегодня