Size: a a a

2020 October 17

ДБ

Дмитрий Беляев... in Rust Beginners
Emmanuel Goldstein
Операторы на примитивных типах — special case внутри компилятора
просто я раньше много где в коде std и core видел болванки с пустыми функциями (ща чет не могу найти) - типа вроде как компиляторная магия, и тело будет сгенерено, а тут вот удивило прямо
источник

EG

Emmanuel Goldstein in Rust Beginners
Дмитрий Беляев
просто я раньше много где в коде std и core видел болванки с пустыми функциями (ща чет не могу найти) - типа вроде как компиляторная магия, и тело будет сгенерено, а тут вот удивило прямо
Это нужно для того, чтобы Add::add(2, 3) работало правильно
источник

EG

Emmanuel Goldstein in Rust Beginners
Add::add(2, 3), таким образом, разворачивается в 2 + 3, а как вычислять 2 + 3 компилятор знает
источник

ДБ

Дмитрий Беляев... in Rust Beginners
Emmanuel Goldstein
Add::add(2, 3), таким образом, разворачивается в 2 + 3, а как вычислять 2 + 3 компилятор знает
то есть для базовых типов он не рассахаривает в вызов метода получается?
источник

EG

Emmanuel Goldstein in Rust Beginners
Дмитрий Беляев
то есть для базовых типов он не рассахаривает в вызов метода получается?
Нет
источник

ДБ

Дмитрий Беляев... in Rust Beginners
все, теперь все встало на свои места, спасибо что объяснил
я просто там ожидал увидеть скорее вставку на llvm-asm но никак не обычную операцию
источник

EG

Emmanuel Goldstein in Rust Beginners
Дмитрий Беляев
все, теперь все встало на свои места, спасибо что объяснил
я просто там ожидал увидеть скорее вставку на llvm-asm но никак не обычную операцию
Как-то так
https://gist.github.com/GoldsteinE/030cbbdb2265fb1e9d2702ac2ed250da
Компилировать через
rustc +nightly -C panic=abort
источник

EG

Emmanuel Goldstein in Rust Beginners
$ ./demo
Now adding two Ss: S and S

Можно заметить, что для чисел наш кастомный Add ничего не выводится, потому что никогда не вызывается.
источник

ДБ

Дмитрий Беляев... in Rust Beginners
👍
источник

M

Michael in Rust Beginners
Привет:)
А можете посоветовать пример библиотеки у которой есть блокируещее и асинк апи?
Суть задачи, есть библиотека которая умеет только в блокирующие http запросы. Хочу сделать хорошее дело и добавить в нее поддержку асинка.
И было бы здорово посмотреть на примеры с хорошим стилем и сделанные для людей, так сказать
источник

F

Fortunato in Rust Beginners
reqwest вроде
источник

H

Hirrolot in Rust Beginners
Fortunato
reqwest вроде
+
источник

EG

Emmanuel Goldstein in Rust Beginners
Fortunato
reqwest вроде
У reqwest асинхронное апи обёрнуто сверху в «синхронное»
источник

EG

Emmanuel Goldstein in Rust Beginners
Из-за чего он жруч и неэффективен для синхронных запросов — каждый раз всё равно разворачивается рантайм tokio
источник

EG

Emmanuel Goldstein in Rust Beginners
Дмитрий Беляев
все, теперь все встало на свои места, спасибо что объяснил
я просто там ожидал увидеть скорее вставку на llvm-asm но никак не обычную операцию
https://gist.github.com/GoldsteinE/a516d41f13622837700c8d47d24659b0
Во, вот полный пример
Компилировать через rustc +nightly -Z force-overflow-checks=no demo.rs
источник

DD

Dmitry D. Chernov in Rust Beginners
Дмитрий Беляев
все, теперь все встало на свои места, спасибо что объяснил
я просто там ожидал увидеть скорее вставку на llvm-asm но никак не обычную операцию
а разве можно в код на расте делать вставки на LLVM IR?
источник

EG

Emmanuel Goldstein in Rust Beginners
Дмитрий Беляев
все, теперь все встало на свои места, спасибо что объяснил
я просто там ожидал увидеть скорее вставку на llvm-asm но никак не обычную операцию
Нельзя
источник

EG

Emmanuel Goldstein in Rust Beginners
llvm_asm — это старый макрос для ассемблерных вставок
источник

DN

Denis Nevmerzhitskii in Rust Beginners
Michael
Привет:)
А можете посоветовать пример библиотеки у которой есть блокируещее и асинк апи?
Суть задачи, есть библиотека которая умеет только в блокирующие http запросы. Хочу сделать хорошее дело и добавить в нее поддержку асинка.
И было бы здорово посмотреть на примеры с хорошим стилем и сделанные для людей, так сказать
Redis
источник

M

Michael in Rust Beginners
Спасибо!
источник