Back to

package bitfield

Latest Go to latest
Published: Apr 25, 2019 | License: BSD-3-Clause | Module:


Package bitfield converts annotated structs into integer values.

Any field that is marked with a bitfield tag is compacted. The tag value has two parts. The part before the comma determines the method name for a generated type. If left blank the name of the field is used. The part after the comma determines the number of bits to use for the representation.


func Gen

func Gen(w io.Writer, x interface{}, c *Config) error

Gen generates code for unpacking integers created with Pack.

func Pack

func Pack(x interface{}, c *Config) (packed uint64, err error)

Pack packs annotated bit ranges of struct x in an integer.

Only fields that have a "bitfield" tag are compacted.

type Config

type Config struct {
	// NumBits fixes the maximum allowed bits for the integer representation.
	// If NumBits is not 8, 16, 32, or 64, the actual underlying integer size
	// will be the next largest available.
	NumBits uint

	// If Package is set, code generation will write a package clause.
	Package string

	// TypeName is the name for the generated type. By default it is the name
	// of the type of the value passed to Gen.
	TypeName string

Config determines settings for packing and generation. If a Config is used, the same Config should be used for packing and generation.

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
f or F : Jump to identifier