mapgen

package module
v0.0.0-...-7ad42f2 Latest Latest
Warning

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

Go to latest
Published: Jul 19, 2023 License: MIT Imports: 11 Imported by: 0

README

Note As of Go 1.18, just use generics.


mapgen

A tool which generates thread safe maps for Go.

Features:

  • Supports any key/value pair supported by Go's native maps
  • Allows complex operations via Lock() and Unlock()
  • Generated code conforms to golint and gofmt
  • Allows custom types
  • Sensible default file name and map name
  • Optionally generates using sync.RWMutex

Generated example located in examples/

Install

go get -u github.com/s-kirby/mapgen/cmd/mapgen

Usage

Create string -> int map:

$ mapgen string/int
Wrote string_int_map_gen.go

Create string -> *bytes.Buffer map using a read-write mutex:

$ mapgen --rwmu string/*bytes.Buffer
Wrote string_buffer_map_gen.go

Help:

usage: mapgen [<flags>] <keyvalue types> [<tname>]

Flags:
      --help       Show context-sensitive help (also try --help-long and --help-man).
  -p, --pkg="."    package name
  -v, --verbose    highly descriptive output
  -f, --file=FILE  output file name
      --rwmu       Use RWMutex

Args:
  <keyvalue types>  Key and value types, e.g `string/int`
  [<tname>]         name of generated type

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Asset

func Asset(name string) ([]byte, error)

Asset loads and returns the asset for the given name. It returns an error if the asset could not be found or could not be loaded.

func AssetDir

func AssetDir(name string) ([]string, error)

AssetDir returns the file names below a certain directory embedded in the file by go-bindata. For example if you run go-bindata on data/... and data contains the following hierarchy:

data/
  foo.txt
  img/
    a.png
    b.png

then AssetDir("data") would return []string{"foo.txt", "img"} AssetDir("data/img") would return []string{"a.png", "b.png"} AssetDir("foo.txt") and AssetDir("notexist") would return an error AssetDir("") will return []string{"data"}.

func AssetInfo

func AssetInfo(name string) (os.FileInfo, error)

AssetInfo loads and returns the asset info for the given name. It returns an error if the asset could not be found or could not be loaded.

func AssetNames

func AssetNames() []string

AssetNames returns the names of the assets.

func Generate

func Generate(params Params, w io.Writer) error

Generate creates a map from provided options

func MustAsset

func MustAsset(name string) []byte

MustAsset is like Asset but panics when Asset would return an error. It simplifies safe initialization of global variables.

func ParseKeyValueType

func ParseKeyValueType(kvt string) (key string, value string, err error)

ParseKeyValueType parses a string of the form <key>/<value>

func RestoreAsset

func RestoreAsset(dir, name string) error

RestoreAsset restores an asset under the given directory

func RestoreAssets

func RestoreAssets(dir, name string) error

RestoreAssets restores an asset under the given directory recursively

Types

type Params

type Params struct {
	Package    string
	Exported   bool
	UseRWMutex bool
	MapName    string
	KeyType    string
	ValType    string
}

Params contains raw template paramters

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

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