паддинг-байты, тогда это sound?
это вроде как надо делать на поинтерах
Так, прежде чем погружаться в такие тему, у меня вопрос: нафига это тебе нужно? Ну, блин, реально
Мне нужно в directx передать массив структур (передать - в смысле, что рантайм мне дает указатель на замапленную GPU-память, и я туда копирую). API про паддинги знает (ожидает repr(C)), так что читать оттуда, понятно, не будет. Ну и проблема, с которой я изначально пришел, в том, что мне нужно этот массив структур хранить внутри одного из вариантов enum'а, у которого дофига других вариантов, поэтому проще сразу стереть тип и хранить сырые байты, чем делать enum шаблонным, чтобы он хранил Vec<T>, а не Vec<u8>
Всё ещё не вижу, в чём проблема делать нормально
А "нормально" - это как?
Просто хранить массив структур в варианте перечисления, как есть
Логика выполнения так построена, что мне сначала нужно сохранить этот массив в вышеупомянутый enum, потом с этим enum'ом поделать всякие вещи, и только потом будет возможность прочитать из enum'а массив и записать на гпу
То ли я не допираю, то ли ты рассказываешь недостаточно нюансов, но я в упор не вижу проблемы
Давай еще раз :) Есть enum Foo, у которого один из вариантов, Foo::Bar, содержит мембер data: Vec<T>. Foo должен в этом массиве уметь хранить разные T, заранее список не известен, дублировать Foo::Bar несколько раз под разные типы не вариант. Так что остается или на весь enum Foo навешивать параметр T, или хранить в мембере data Vec<u8>.
> дублировать Foo::Bar несколько раз под разные типы не вариант Почему не вариант? Число этих типов не ограниченно?
Обсуждают сегодня