Кроме использования cgo, знаете ли вы, как лучше всего упаковать объект GO в байтовый фрагмент?
Мы можем использовать кодирование / двоичный пакет для сериализации GO struct до байтового среза, насколько нам известно, но он поддерживает только переменную фиксированной длины, поэтому не может поддерживать следующий случай.
typedef struct
{
uint32_t foo:12;
uint32_t bar:9;
uint32_t baz:1;
uint32_t qux:10;
} type_t;
Нужно ли нам реализовать GO структуру с getter / setter для этого случая с ужасным битом манипуляция с учетом порядка байтов? Например:
type typeT struct
{
fooBarBazQux uint32
}
// some complex bit manipulation considering endianness
func (t typeT) getFoo() uint32 {
}
func (t typeT) setFoo(val uint32) {
}
Есть ли лучшее решение для этого?
Я пробовал encoding / json mashaler для моего пользовательского типа, но пакет кодирования / двоичного кода делает Кажется, не поддерживается такой интерфейс.
Мне нужна ваша помощь.