Size: a a a

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

2020 March 14

OA

Oleg Andreev in Rust — русскоговорящее сообществo
это тонкая прослойка. Гемор только если колбеки передавать или указатели на долгоживущие данные по ту сторону забора
источник

Э

Эрик in Rust — русскоговорящее сообществo
С тем же успехом можно кодить под strongly ordered, везде прописывая relaxed, а потом рипнуться на телефоне.
источник

Э

Эрик in Rust — русскоговорящее сообществo
То, что ты крутился посреди туалета с закрытыми глазами и сренькнул, но всё-таки попал в унитаз, не значит, что в следующий раз будет так же.
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Oleg Andreev
о, а насколько лучше FFI из раста в раст чем через repr(C)?
Всмысле?
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
Ну например можно енумы с данными передавать?
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Эрик
То, что ты крутился посреди туалета с закрытыми глазами и сренькнул, но всё-таки попал в унитаз, не значит, что в следующий раз будет так же.
Я знаю что такое УБ. Но моя позиция проста: на стадии разработки чтобы скостылить какое-то решение, пойдет.
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
(Которые естессно без ссылок и поинтеров)
источник

Э

Эрик in Rust — русскоговорящее сообществo
polunin.ai
Я знаю что такое УБ. Но моя позиция проста: на стадии разработки чтобы скостылить какое-то решение, пойдет.
Почему бы просто не пихнуть repr(C)?
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Ну впихну, да, не знал что это УБ
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
Эрик
Почему бы просто не пихнуть repr(C)?
Потому что енумы превращаются в адъ
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Oleg Andreev
Потому что енумы превращаются в адъ
В плане? Размещаются в памяти по-дурацки?
источник

Э

Эрик in Rust — русскоговорящее сообществo
repr(C) не даёт флаги енумовые навешивать на структуры.
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Это что за флаги?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Насколько я помню. Это не точно, но вот так:

#[repr(C)]
enum E {
A(Data),
B(OtherData),
C(Foo),
D(Bar),
}

сделать нельзя.
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Это будет очень плохо :\
Пойду гляну
источник

p

polunin.ai in Rust — русскоговорящее сообществo
#[repr(C)]
struct Baz {
   data: i8,
}
#[repr(C)]
enum Foo {
   Bar(i8),
   Baz(Baz)
}

Вот так скомпилировалось
источник

A

Anton 📦 ᯌ in Rust — русскоговорящее сообществo
polunin.ai
#[repr(C)]
struct Baz {
   data: i8,
}
#[repr(C)]
enum Foo {
   Bar(i8),
   Baz(Baz)
}

Вот так скомпилировалось
Baz(Baz) не делойте так
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Anton 📦 ᯌ
Baz(Baz) не делойте так
У меня половина кода вот такие энумы😂
источник

Э

Эрик in Rust — русскоговорящее сообществo
baz репроси структура, как и i8
источник

Э

Эрик in Rust — русскоговорящее сообществo
Сделай
enum Yoba {
A(i8),
B(u8),
}

и

repr(C)
enum OtherYoba {
C(Yoba),
D(Data),
}
источник