layouts

package
v0.0.0-...-b32920f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 21, 2024 License: BSD-3-Clause Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Builtins = s2m([]Builtin{
	{1, 1, 1, 'U', 0},
	{1, 1, 1, '1', 0},
	{2, 2, 2, '2', 0},
	{4, 4, 4, '4', 0},
	{8, 8, 8, '8', 0},
	{8, 4, 4, 'c', 0},
	{16, 8, 8, 'C', 0},
	{8, 8, 8, 'P', 8},
	{8, 8, 8, 'Q', 8},
	{16, 8, 8, 'I', 8},
	{16, 8, 8, 's', 8},
	{24, 8, 8, 'S', 8},
	{8, 8, 8, 'M', 0},
	{8, 8, 8, 'X', 0},
	{8, 8, 8, 'Y', 0},
})
View Source
var Compressed = s2m([]Builtin{
	{1, 1, 1, 'U', 0},
	{1, 1, 1, '1', 0},
	{2, 2, 2, '2', 0},
	{4, 4, 4, '4', 0},
	{8, 8, 8, '8', 0},
	{8, 4, 4, 'c', 0},
	{16, 8, 8, 'C', 0},
	{8, 8, 8, 'P', 8},
	{4, 4, 8, 'Q', 4},
	{16, 8, 8, 'I', 8},
	{16, 8, 8, 's', 8},
	{24, 8, 8, 'S', 8},
	{8, 8, 8, 'M', 0},
	{8, 8, 8, 'X', 0},
	{8, 8, 8, 'Y', 0},
})
View Source
var GpBuiltins = s2m([]Builtin{
	{1, 1, 1, 'U', 0},
	{1, 1, 1, '1', 0},
	{2, 2, 2, '2', 0},
	{4, 4, 4, '4', 0},
	{8, 8, 8, '8', 0},
	{8, 4, 4, 'c', 0},
	{16, 8, 8, 'C', 0},
	{8, 8, 8, 'P', 8},
	{8, 8, 8, 'Q', 8},
	{16, 16, 16, 'I', 8},
	{16, 16, 16, 's', 8},
	{24, 16, 16, 'S', 8},
	{8, 8, 8, 'M', 0},
	{8, 8, 8, 'X', 0},
	{8, 8, 8, 'Y', 0},
})
View Source
var GpMinusBuiltins = s2m([]Builtin{
	{1, 1, 1, 'U', 0},
	{1, 1, 1, '1', 0},
	{2, 2, 2, '2', 0},
	{4, 4, 4, '4', 0},
	{8, 8, 8, '8', 0},
	{8, 4, 4, 'c', 0},
	{16, 8, 8, 'C', 0},
	{8, 8, 8, 'P', 8},
	{8, 8, 8, 'Q', 8},
	{16, 16, 16, 'I', 8},
	{16, 16, 16, 's', 8},
	{24, 16, 8, 'S', 8},
	{8, 8, 8, 'M', 0},
	{8, 8, 8, 'X', 0},
	{8, 8, 8, 'Y', 0},
})

Like GP, but not aligning slices, just to see how much perturbing alignment costs.

Functions

func AsString

func AsString(x []Builtin) string

func Measure

func Measure(x []Builtin, maxAlign int) (data, interior, trailing int)

Measure determines how storage is/isn't wasted by a layout. Align can be larger than parts, if for example a compressed pointer is contained within.

func PadFor

func PadFor(offset, align int) int

func Validate

func Validate(x []Builtin) error

Types

type Builtin

type Builtin struct {
	// contains filtered or unexported fields
}

type BuiltinLayouts

type BuiltinLayouts map[byte]*Builtin

func (BuiltinLayouts) OptionalPadSuffix

func (bl BuiltinLayouts) OptionalPadSuffix(s string, padSuffix bool) (x []Builtin, at int, maxAlign int, contAlign int, ptrSpan int, end int)

func (BuiltinLayouts) Plain

func (bl BuiltinLayouts) Plain(s string) (x []Builtin, at int, maxAlign int, contAlign int, ptrSpan int, end int)

func (BuiltinLayouts) PlainAlt

func (bl BuiltinLayouts) PlainAlt(s string) (x []Builtin, at int, maxAlign int, contAlign int, ptrSpan int, end int)

func (BuiltinLayouts) Sort

func (bl BuiltinLayouts) Sort(s string) (x []Builtin, at int, maxAlign int, contAlign int, ptrSpan int, end int)

func (BuiltinLayouts) SortAndOptionalPadSuffixInterior

func (bl BuiltinLayouts) SortAndOptionalPadSuffixInterior(s string, sortFields, padSuffix bool) field

func (BuiltinLayouts) SortFill

func (bl BuiltinLayouts) SortFill(s string) (x []Builtin, at int, maxAlign int, contAlign int, ptrSpan int, end int)

func (BuiltinLayouts) UnpadSuffix

func (bl BuiltinLayouts) UnpadSuffix(s string) (x []Builtin, at int, maxAlign int, contAlign int, ptrSpan int, end int)

func (BuiltinLayouts) UnpadSuffixAlt

func (bl BuiltinLayouts) UnpadSuffixAlt(s string) (x []Builtin, at int, maxAlign int, contAlign int, ptrSpan int, end int)

type Error

type Error struct {
	FieldIndex int
	Offset     int
	WantAlign  int
	GotAlign   int
	Offending  Builtin
}

func (Error) Error

func (e Error) Error() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL