Size: a a a

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

2020 December 03

d

diabolo in Rust — русскоговорящее сообществo
вафель 🧇
А смысл не следовать? И как можно проверить UB? UB на то и UB, что может привести к чему угодно, поменяться от версии компилятора, платформы, etc
вот! вот ты как раз верно говоришь
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
ShaTie
Задача: написать быстрый, кроссплатформенный и очень специализированный парсер, отправлять нужно всего 2 разных запроса, но перед этим стоит авторизация.
Бери reqwest, он простой и вряд-ли слишком медленный для твоих задач
источник

d

diabolo in Rust — русскоговорящее сообществo
не понятно понятие "быстрый"
источник

p

polunin.ai in Rust — русскоговорящее сообществo
вафель 🧇
...но любое его использование — инста UB
mem::zeroed() пойдет?
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
polunin.ai
mem::zeroed() пойдет?
нет
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Почему
источник

d

diabolo in Rust — русскоговорящее сообществo
polunin.ai
Почему
там нельзя тереть память до записи
источник

S

ShaTie in Rust — русскоговорящее сообществo
В работе, в принципе на rust всё быстро. После получения ответа нужно его проанализировать, на python это происходит 250 ms!!!!
источник

d

diabolo in Rust — русскоговорящее сообществo
ShaTie
В работе, в принципе на rust всё быстро. После получения ответа нужно его проанализировать, на python это происходит 250 ms!!!!
это очень много, даже для питона — тут где-то в другом месте засада
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
polunin.ai
Почему
Например потому что у тебя может быть тип для которого такой паттерн (нули) не валиден.

Лучше используй MaybeUninit, так будет гораздо меньше возможностей отстрелить себе ноги
источник

a

antuan in Rust — русскоговорящее сообществo
ShaTie
В работе, в принципе на rust всё быстро. После получения ответа нужно его проанализировать, на python это происходит 250 ms!!!!
Чет долго. Что там, XML в гиг-другой?
источник

p

polunin.ai in Rust — русскоговорящее сообществo
вафель 🧇
Например потому что у тебя может быть тип для которого такой паттерн (нули) не валиден.

Лучше используй MaybeUninit, так будет гораздо меньше возможностей отстрелить себе ноги
Мне нужно передавать *mut TYPE указатель, я могу получить его из maybeuninit?
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
polunin.ai
Мне нужно передавать *mut TYPE указатель, я могу получить его из maybeuninit?
да.

.cast()
источник

d

diabolo in Rust — русскоговорящее сообществo
polunin.ai
Мне нужно передавать *mut TYPE указатель, я могу получить его из maybeuninit?
да
источник

(L

(((Mike Lubinets))) in Rust — русскоговорящее сообществo
вафель 🧇
А смысл не следовать? И как можно проверить UB? UB на то и UB, что может привести к чему угодно, поменяться от версии компилятора, платформы, etc
My point exactly
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
вафель 🧇
да.

.cast()
т.е.

let buf = MaybeUninit::<Ty>::uninit();
fun((&mut buf).cast());


вроде должен сработать
источник

S

ShaTie in Rust — русскоговорящее сообществo
diabolo
это очень много, даже для питона — тут где-то в другом месте засада
источник

S

ShaTie in Rust — русскоговорящее сообществo
В чём тут может быть засада?
источник

p

polunin.ai in Rust — русскоговорящее сообществo
вафель 🧇
т.е.

let buf = MaybeUninit::<Ty>::uninit();
fun((&mut buf).cast());


вроде должен сработать
там есть as_mut_ptr, все норм
источник

d

diabolo in Rust — русскоговорящее сообществo
ShaTie
В чём тут может быть засада?
сделай mwe на гитхабе, я хз че ты хочешь
источник