Skip to content

milqa/binencoder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BinEncoder

codecov Build Status

Instal

go get github.com/milQA/binencoder

Info

NewEncoder принимает на вход bytes.Buffer и binary.LittleEndian

buf := new(bytes.Buffer)
encoder := binencoder.NewEncoder(buf, binary.LittleEndian)

Encode принимает на вход какую-нибудь структуру и длину байтовой записи. Если необходимо использовать стандартную для типа длину, необходимо задать = 0.

Длину байтовой структуры для поля структуры можно задать тегом:

 `len:"10"`

Если тег не задан, то len наследуется от родительского поля, если он был задан, или принимает значение заданное в функции Encode, или принимается равным 0.

Для того, чтобы игнорировать длину, заданную для родительского поля, либо задать собственную длину, необходимо явно указать длину в теге.

Если задать тег:

`len:"-"`

поле будет пропущено.

(!) Логика тегов на данный момент некорректно работает с BigEndian.

Типы, которые он может серилизовать функция: bool, uint8, uint16, uint32, int32, uint64, int64, string, slice, struct. Серилизация происходить последовательно и зависит от структуры типа.

About

Encoder struct to slice byte

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages