Size: a a a

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

2020 September 27

AV

Andrey Vlasov in Rust — русскоговорящее сообществo
вафель 🧇
А в wasm вообще есть типы/структуры?

Пытаюсь сделать интероп rust<->rust через wasm (плагин по сути), но совершенно не понимаю как передавать данные между хостом/плагином сложнее, чем u64.
zerocopy!
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Andrey Vlasov
zerocopy!
Хм
источник

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
вафель 🧇
А в wasm вообще есть типы/структуры?

Пытаюсь сделать интероп rust<->rust через wasm (плагин по сути), но совершенно не понимаю как передавать данные между хостом/плагином сложнее, чем u64.
Нет, пока вообще нет.
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
А как те же байты передать? Единственное что я видел — экспортируемая функция alloc: u32 -> u32 в плагине, которая делает Vec::with_capacity(cap)into_raw_parts().0 as _, но это какие-то запредельные костыли...
источник

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
вафель 🧇
А в wasm вообще есть типы/структуры?

Пытаюсь сделать интероп rust<->rust через wasm (плагин по сути), но совершенно не понимаю как передавать данные между хостом/плагином сложнее, чем u64.
Но wasm-bindgen — или как его? — как-то же делает. "Соглашение о вызовах". 🤷‍♀️
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Alexander Tchitchigin
Но wasm-bindgen — или как его? — как-то же делает. "Соглашение о вызовах". 🤷‍♀️
Хм 🤔

У меня от подключения wasm-bindgen ломалось подключение скомпилированного плагина. Но anyway надо сейчас посмотреть что там
источник

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
вафель 🧇
А как те же байты передать? Единственное что я видел — экспортируемая функция alloc: u32 -> u32 в плагине, которая делает Vec::with_capacity(cap)into_raw_parts().0 as _, но это какие-то запредельные костыли...
В Wasm by design нужно явно копировать данные из одной памяти в другую, ибо изоляция и безопасность.
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Alexander Tchitchigin
В Wasm by design нужно явно копировать данные из одной памяти в другую, ибо изоляция и безопасность.
Ну это может и не плохо
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
wasm-bindgen похоже только для js<->rust, эх
источник

A

Andrey in Rust — русскоговорящее сообществo
Алексей Герасимов
понадобавляют фич а документировать забывают)
Так open source ж - берёшь и смотришь просто код.
источник

V

Vladimir in Rust — русскоговорящее сообществo
вафель 🧇
А в wasm вообще есть типы/структуры?

Пытаюсь сделать интероп rust<->rust через wasm (плагин по сути), но совершенно не понимаю как передавать данные между хостом/плагином сложнее, чем u64.
а в васм нельзя линковать что-то типа dll?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Andrey
Так open source ж - берёшь и смотришь просто код.
Лол, у rustc слишком большые сорцы, чтобы там HRTB найти.
источник

ВЗ

Владимир Зинчук... in Rust — русскоговорящее сообществo
Andrey
Так open source ж - берёшь и смотришь просто код.
Действительно, сам код это уже и есть документация, ведь он по определению содержит всю информацию о работе программы.
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Vladimir
а в васм нельзя линковать что-то типа dll?
я вообще про вазм ничего не знаю 🙈 сегодня ночью начал погружаться.
источник

MF

Max Frai in Rust — русскоговорящее сообществo
Что там, в найтли еще не починили проблему с медленной компиляцией вложенных async функций?
источник

DP

Daniel Podolsky in Rust — русскоговорящее сообществo
коллеги, а куда принято нубские вопросы по rust задавать?
источник

С

Сергей in Rust — русскоговорящее сообществo
Daniel Podolsky
коллеги, а куда принято нубские вопросы по rust задавать?
в описании канала есть ссылка - @rust_beginners_ru
источник

IB

Ivan Boldyrev in Rust — русскоговорящее сообществo
Владимир Зинчук
Действительно, сам код это уже и есть документация, ведь он по определению содержит всю информацию о работе программы.
Код отвечает на вопрос "что", но не отвечает на вопрос "зачем".
источник

PM

Pavel Meledin in Rust — русскоговорящее сообществo
Ivan Boldyrev
Код отвечает на вопрос "что", но не отвечает на вопрос "зачем".
для этого есть rfc. к тому же фичи добавляются экспериментальным способом, т.е. "зачем" может со временем как расширить так и сузить спектр того для чего это сделано. плюс фичи не живут в отрыве от всей остальной экосистемы компилятора и идеологий + сверху накладываются параллельно разрабатываемые другие фичи. в этом множестве вариантов поддерживать документацию становится проблематичным: не понятно кто ее должен поддерживать (автор отдельной фичи предполагается что понимает для чего он свою делает - rfc). результат даже 2х пересекающихся фич - дл конца не ясне ни одному из авторов. В общем rfc + эксперименты на локальной машине и чтение кода пока единственный прагматичный способ разобраться в фичах
источник

KK

Kirill (Cykooz) Kuzm... in Rust — русскоговорящее сообществo
У меня есть трейт и есть несколько его имплементаций. Я хочу написать один раз тесты для этого трейта и запускать их с разными имплементациями.
Допустим я могу написать итератор, который последовательно возвращает все имплементации трейта (через Box<dyn Trait> или enum_dispatch - не важно как). Можно ли как-то сделать так, что бы все тесты трейта запустились с каждой имплементацией?
источник