Size: a a a

2020 December 30

ΑZ

Αλεχ Zhukovsky in rust_offtopic
polunin.ai
Language:
rust


Source:
trait M<A> {}
impl<A, B> M<A> for (A, B) {}
impl<A, B> M<B> for (A, B) {}
fn main() {}


Errors:
error[E0119]: conflicting implementations of trait `M<_>` for type `(_, _)`:
--> 845880507/source.rs:3:1
 |
2 | impl<A, B> M<A> for (A, B) {}
 | -------------------------- first implementation here
3 | impl<A, B> M<B> for (A, B) {}
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `(_, _)`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0119`.
И какую реализацию он должен брать для (i32, i32)? Обе подходят
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Doge Shibu
@hirrolot @p0lunin @Psilon

Вот, кстати, вчера вечером переделал вариант с TF и футурами без боксов так, чтобы сохранялось переиспользование системы типов хоста:
https://play.rust-lang.org/?version=nightly&mode=release&edition=2018&gist=230913d53e84c555b5a1c2a0455362ae

Но от дикой сигнатуры метод interpret в текущем расте похоже не избавиться.
да норм, каждый день такое пишу
источник

p

polunin.ai in rust_offtopic
Αλεχ Zhukovsky
И какую реализацию он должен брать для (i32, i32)? Обе подходят
я бы упал с ошибкой
источник

DS

Doge Shibu in rust_offtopic
Αλεχ Zhukovsky
да норм, каждый день такое пишу
Ну короче мой вердикт такой, что полноценного зирокост FT для футур в расте не получить, пока не будет associated trait'ов.
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
polunin.ai
я бы упал с ошибкой
ну вот он и упал. Учитывай что это не темплейты которые в месте подстановки должны падать а генерки которые должны быть валидны для всех возможных значений
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Doge Shibu
Ну короче мой вердикт такой, что полноценного зирокост FT для футур в расте не получить, пока не будет associated trait'ов.
чень жаль
источник

DS

Doge Shibu in rust_offtopic
Αλεχ Zhukovsky
чень жаль
Ну либо сигнатуры из ада
источник

DS

Doge Shibu in rust_offtopic
С ними выйдет
источник

T1

Tony 123 in rust_offtopic
Doge Shibu
Ну либо сигнатуры из ада
например?
источник

DS

Doge Shibu in rust_offtopic
Tony 123
например?
источник

DS

Doge Shibu in rust_offtopic
Αλεχ Zhukovsky
чень жаль
Ну и выйдет, если боксы не пугают
источник

T1

Tony 123 in rust_offtopic
и каком образом с ними выйдет?
источник

DS

Doge Shibu in rust_offtopic
Tony 123
и каком образом с ними выйдет?
Вот оно и выходит. Это вариант final tagless энкодинга, где у тебя есть расширение твоего "аст" и расширение "интерпретаторов"
источник

DS

Doge Shibu in rust_offtopic
При этом зирокост
источник

T1

Tony 123 in rust_offtopic
Doge Shibu
Вот оно и выходит. Это вариант final tagless энкодинга, где у тебя есть расширение твоего "аст" и расширение "интерпретаторов"
не понял, это же к трейтам не относится
источник

DS

Doge Shibu in rust_offtopic
Tony 123
не понял, это же к трейтам не относится
А к чему относилось "и каком образом с ними выйдет?"?
источник

DS

Doge Shibu in rust_offtopic
К associated trait или к сигнатурам из ада?
источник

T1

Tony 123 in rust_offtopic
Doge Shibu
А к чему относилось "и каком образом с ними выйдет?"?
ты сказал что пока не будет associated traits, с помощью которых можно избавиться от Box, zero-cost асинка не будет.

ну, как это сделать с associated traits — очевидно, а каким образом сигнатуры из Ада убирают нужду в Box в трейтах?
источник

DS

Doge Shibu in rust_offtopic
Tony 123
ты сказал что пока не будет associated traits, с помощью которых можно избавиться от Box, zero-cost асинка не будет.

ну, как это сделать с associated traits — очевидно, а каким образом сигнатуры из Ада убирают нужду в Box в трейтах?
Так я не говорил тут про зирокост асинк, я говорил про зирокост final tagless, с учётом того, что можно аст интерпретировать в футуры.
источник

DS

Doge Shibu in rust_offtopic
Tony 123
ты сказал что пока не будет associated traits, с помощью которых можно избавиться от Box, zero-cost асинка не будет.

ну, как это сделать с associated traits — очевидно, а каким образом сигнатуры из Ада убирают нужду в Box в трейтах?
А сигнатуры из ада убирают нужду в Box'ах потому что ты можешь через associated тип указать impl Future<Output = ...> для результата данного метода и через кучу констрейнтов указать, что входные аргументы совместимы с выходными.
источник