Size: a a a

Rust — русскоговорящее сообществo

2020 November 12

D

Denis in Rust — русскоговорящее сообществo
Mikail Bagishov
А еще с теми, где больше нечего обсуждать
не без этого )
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Denis
а type_alias_impl_trait жуть как нужен!)
Вафель синтаксическую конструкцию предложил, я именно про нее говорил.
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Это большой плюс TAIT что он синтаксически очевиден, поэтому там только технические трудности, а не социальные
источник

D

Denis in Rust — русскоговорящее сообществo
ах в этом смысле)
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Mikail Bagishov
Ее синтаксис будут 100500 лет байкшеддить, то есть в 10050 раз дольше чем chalk впиливать.
Ну просто в таком виде почти неюзабельно, а ой как нужно 😞
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Mikail Bagishov
Это большой плюс TAIT что он синтаксически очевиден, поэтому там только технические трудности, а не социальные
ну такое, я когда пытался его использовать, мне приходилось код в отдельную функцию выносить, потому что создание структуры с алиасом как полем, не выводило тип
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Зато работает
источник

А⚙

Антон ⚙️ in Rust — русскоговорящее сообществo
*Зато не работает
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Mikail Bagishov
Зато работает
> Не работает
> Зато работает
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Ну я не знаю что там с дженериками, но без них точно спокойно работало
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Главный запрос на TAIT это асинхронные трейты, они в основном не обобщенные, значит выиграют
источник

s

sadsnake in Rust — русскоговорящее сообществo
Господа и дамы, а есть какой-то изящный способ поменять в Result местами варианты?
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Mikail Bagishov
Ну я не знаю что там с дженериками, но без них точно спокойно работало
Да какие дженерики? Я говорю:

type Alias = impl Trait;

struct Wrap(Alias);

fn new() -> Wrap {
   Wrap(value)
}


не работает
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Выделить создание Alias в отдельную функцию несложно
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Mikail Bagishov
Выделить создание Alias в отдельную функцию несложно
на практике достаточно неудобно
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Да, это досадное ограничение, но в целом фича работает
источник

А⚙

Антон ⚙️ in Rust — русскоговорящее сообществo
sadsnake
Господа и дамы, а есть какой-то изящный способ поменять в Result местами варианты?
Мне на ум приходит только функция с явным patter matching, которую можно запихнуть в extension trait. А тебе для чего?
источник

s

sadsnake in Rust — русскоговорящее сообществo
Антон ⚙️
Мне на ум приходит только функция с явным patter matching, которую можно запихнуть в extension trait. А тебе для чего?
Делаю Error::try_from(status_code) получается не очень выразительно, когда Err от этой функции является Ok для всей функции
источник

V

Vitaliy in Rust — русскоговорящее сообществo
sadsnake
Господа и дамы, а есть какой-то изящный способ поменять в Result местами варианты?
только так, наверное .map_or_else(|e| Ok(e), |v| Err(v));
(если я правильно задачу понял)
источник

С

Сергей in Rust — русскоговорящее сообществo
есть где нибудь контраргументы на эту статью ? https://www.viva64.com/en/b/0733/
источник