Size: a a a

2020 February 20

OA

Oleg Andreev in rust_offtopic
источник

В

Вафель in rust_offtopic
Очень не хватает возможности ссылаться на дженерик параметры сруктур...

Т.е. хочется чего-то такого:

struct Generic<A, B>(...);

impl<T: Generic<...>> X<T> {
   fn x(_: T::A, _: T::B) {}
}
источник

В

Вафель in rust_offtopic
В данном примере можно написать

impl<A, B> X<Generic<A, B>> {
   fn x(_: A, _: B) {}
}
источник

В

Вафель in rust_offtopic
но в более сложном коде с этим проблемы
источник

r

red75prime in rust_offtopic
Вафель
Очень не хватает возможности ссылаться на дженерик параметры сруктур...

Т.е. хочется чего-то такого:

struct Generic<A, B>(...);

impl<T: Generic<...>> X<T> {
   fn x(_: T::A, _: T::B) {}
}
Что значит T: StructType ?
источник

p

polunin.ai in rust_offtopic
Раст - это ролик рамштайна, борроучекер - солист Рамштайна, а ты - русская девушка
источник

p

polunin.ai in rust_offtopic
red75prime
Что значит T: StructType ?
он хочет High-Order Generics
источник

В

Вафель in rust_offtopic
red75prime
Что значит T: StructType ?
Это значит <A, B, C, ...> StructType<A, B, C, ...>. Т.е. для любой структуры StructType...
источник

В

Вафель in rust_offtopic
В целом я понимаю что тупо и такое не надо тащить в язык
источник

r

red75prime in rust_offtopic
А. first-class конструкторы типов
источник

В

Вафель in rust_offtopic
Вафель
В целом я понимаю что тупо и такое не надо тащить в язык
Но
impl<A, B, C, D, E, F, G, A1, B1, C1, D1, E1, F1, G1> Trait<Struct<A1, B1, C1, D1, E1, F1, G1>> for Struct<A, B, C, D, E, F, G> {}

Это просто повеситься можно...
источник

а

а это кто in rust_offtopic
Oleg Andreev
fn parse(text: String) {
 parse_with_bot_name(text, None)
}

fn parse_with_bot_name(text: String, bot_name: String) {
 if let Some (name) = bot_name {
 }
 else {
 }
}
Если честно, выглядит не достаточно плохо, чтобы у сложнять язык дефолт аргументами.
источник

а

а это кто in rust_offtopic
Вафель
Очень не хватает возможности ссылаться на дженерик параметры сруктур...

Т.е. хочется чего-то такого:

struct Generic<A, B>(...);

impl<T: Generic<...>> X<T> {
   fn x(_: T::A, _: T::B) {}
}
А зачем тебе такое?
источник

r

red75prime in rust_offtopic
red75prime
А. first-class конструкторы типов
Нет. Не так понял. Это - сахар для дженериков
источник

В

Вафель in rust_offtopic
а это кто
А зачем тебе такое?
Там ниже объяснение
источник

а

а это кто in rust_offtopic
Вафель
Там ниже объяснение
ой
источник

OA

Oleg Andreev in rust_offtopic
а это кто
Если честно, выглядит не достаточно плохо, чтобы у сложнять язык дефолт аргументами.
видимо, есть узкая зона, где билдер/конфиг - слишком много, а комбинация 4 методов для двух опциональных параметров уже бесит.
источник

а

а это кто in rust_offtopic
Ага
источник

В

Вафель in rust_offtopic
red75prime
Нет. Не так понял. Это - сахар для дженериков
Ага. сахарочек
источник

OA

Oleg Andreev in rust_offtopic
но с другой стороны, лучше потерпеть неудобства дизайна где-то по углам, чем для них специально городить Архитектуру
источник