strategies

package
Version: v1.6.2 Latest Latest
Warning

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

Go to latest
Published: Dec 24, 2021 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// pack/unpack mem util
	Pack   gopium.StrategyName = "memory_pack"
	Unpack gopium.StrategyName = "memory_unpack"
	// explicit sys/type pads
	PadSys  gopium.StrategyName = "explicit_paddings_system_alignment"
	PadTnat gopium.StrategyName = "explicit_paddings_type_natural"
	// false sharing guards
	FShareL1 gopium.StrategyName = "false_sharing_cpu_l1"
	FShareL2 gopium.StrategyName = "false_sharing_cpu_l2"
	FShareL3 gopium.StrategyName = "false_sharing_cpu_l3"
	FShareB  gopium.StrategyName = "false_sharing_bytes_%d"
	// cache line pad roundings
	CacheL1D gopium.StrategyName = "cache_rounding_cpu_l1_discrete"
	CacheL2D gopium.StrategyName = "cache_rounding_cpu_l2_discrete"
	CacheL3D gopium.StrategyName = "cache_rounding_cpu_l3_discrete"
	CacheBD  gopium.StrategyName = "cache_rounding_bytes_%d_discrete"
	CacheL1F gopium.StrategyName = "cache_rounding_cpu_l1_full"
	CacheL2F gopium.StrategyName = "cache_rounding_cpu_l2_full"
	CacheL3F gopium.StrategyName = "cache_rounding_cpu_l3_full"
	CacheBF  gopium.StrategyName = "cache_rounding_bytes_%d_full"
	// top, bottom separate pads
	SepSysT gopium.StrategyName = "separate_padding_system_alignment_top"
	SepSysB gopium.StrategyName = "separate_padding_system_alignment_bottom"
	SepL1T  gopium.StrategyName = "separate_padding_cpu_l1_top"
	SepL2T  gopium.StrategyName = "separate_padding_cpu_l2_top"
	SepL3T  gopium.StrategyName = "separate_padding_cpu_l3_top"
	SepBT   gopium.StrategyName = "separate_padding_bytes_%d_top"
	SepL1B  gopium.StrategyName = "separate_padding_cpu_l1_bottom"
	SepL2B  gopium.StrategyName = "separate_padding_cpu_l2_bottom"
	SepL3B  gopium.StrategyName = "separate_padding_cpu_l3_bottom"
	SepBB   gopium.StrategyName = "separate_padding_bytes_%d_bottom"
	// tag processors and modifiers
	ProcTag  gopium.StrategyName = "process_tag_group"
	AddTagS  gopium.StrategyName = "add_tag_group_soft"
	AddTagF  gopium.StrategyName = "add_tag_group_force"
	AddTagSD gopium.StrategyName = "add_tag_group_discrete"
	AddTagFD gopium.StrategyName = "add_tag_group_force_discrete"
	RmTagF   gopium.StrategyName = "remove_tag_group"
	// doc and comment annotations
	FNoteDoc  gopium.StrategyName = "fields_annotate_doc"
	FNoteCom  gopium.StrategyName = "fields_annotate_comment"
	StNoteDoc gopium.StrategyName = "struct_annotate_doc"
	StNoteCom gopium.StrategyName = "struct_annotate_comment"
	// lexicographical, length, embedded, exported sorts
	NLexAsc  gopium.StrategyName = "name_lexicographical_ascending"
	NLexDesc gopium.StrategyName = "name_lexicographical_descending"
	TLexAsc  gopium.StrategyName = "type_lexicographical_ascending"
	TLexDesc gopium.StrategyName = "type_lexicographical_descending"
	// filters and others
	FPad   gopium.StrategyName = "filter_pads"
	Ignore gopium.StrategyName = "ignore"
)

list of registered strategies names

Variables

This section is empty.

Functions

This section is empty.

Types

type Builder

type Builder struct {
	Curator gopium.Curator `gopium:"filter_pads,memory_pack,cache_rounding_cpu_l1_discrete,struct_annotate_comment,add_tag_group_force"`

} // struct size: 16 bytes; struct align: 8 bytes; struct aligned size: 16 bytes; struct ptr scan size: 16 bytes; - 🌺 gopium @1pkg

Builder defines types gopium.StrategyBuilder implementation that uses gopium.Curator as an exposer and related strategies

func (Builder) Build

func (b Builder) Build(names ...gopium.StrategyName) (gopium.Strategy, error)

Build Builder implementation

Jump to

Keyboard shortcuts

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