Как стать автором
Обновить

Комментарии 6

Так по идее объединения такого вида скорее аналогичны enum'ам. Есть ли в расте возможность как-нибудь влиять на их размер и выравнивание, а также дотянутся до идентификатора типа и описать его самостоятельно?
Размер enum в расте можно задавать через repr, например, repr(u8) или repr(u64). Но идентификатор типа, насколько я знаю, всегда будет храниться внутри, так что полного аналога с сишным enum добиться не получится.
Немного больше информации можно найти в "растономиконе".
Мы тут, кстати, недавно закончили Растономикон переводить.
Отлично, как раз сейчас в процессе прочтения. Хоть и стараюсь читать на английском, чтобы заодно язык подтягивать, но бывает, что не всегда сразу въезжаю. Буду параллельно в перевод посматривать.
Если что, вот нагуглилось RFC об `unsafe enum` — https://github.com/retep998/rfcs/blob/master/text/0000-unsafe-enums.md. Его даже обсуждали активно, так что, наверное, когда-нибудь сделают какое-то человеколюбивое решение.
Да, я недостаточно изучил вопрос перед публикацией. Честно говоря, думал, что тонкости объединений сознательно игнорируются — мол в FFI оно не так уж часто нужно.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории