atomicgo.uber.org/atomic/internal/gen-atomicwrapper

gen-atomicwrapper command

gen-atomicwrapper generates wrapper types around other atomic types.

It supports plugging in functions which convert the value inside the atomic type to the user-facing value. For example,

Given, atomic.Value and the functions,

func packString(string) interface{}
func unpackString(interface{}) string

We can run the following command:

gen-atomicwrapper -name String -wrapped Value \
  -type string -pack fromString -unpack tostring

This wil generate approximately,

type String struct{ v Value }

func (s *String) Load() string {
  return unpackString(v.Load())
}

func (s *String) Store(s string) {
  return s.v.Store(packString(s))
}

The packing/unpacking logic allows the stored value to be different from the user-facing value.

Version
v1.11.0 (latest)
Published
May 3, 2023
Platform
linux/amd64
Imports
13 packages
Last checked
1 week ago

Tools for package owners.