enumstr

package module
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Apr 20, 2023 License: GPL-3.0 Imports: 4 Imported by: 0

README

enumstr

enumstr provides an easy way to map between enumerated values and their string representations.

Installation
go get github.com/semichkin-gopkg/enumstr@latest
Usage
package main

import (
	"github.com/semichkin-gopkg/enumstr"
	"log"
)

type (
	UserStatusFromProtobuf int32
	UserStatus             string
)

const (
	ProtoUserStatus_Unknown    UserStatusFromProtobuf = 0
	ProtoUserStatus_Active     UserStatusFromProtobuf = 1
	ProtoUserStatus_Inactive   UserStatusFromProtobuf = 2
	ProtoUserStatus_MovedToBin UserStatusFromProtobuf = 3
)

var UserStatusFromProtobuf_name = map[int32]string{
	0: "UNKNOWN",
	1: "ACTIVE",
	2: "INACTIVE",
	3: "MOVED_TO_BIN",
}

func main() {
	mapper := enumstr.New[UserStatusFromProtobuf, UserStatus](
		UserStatusFromProtobuf_name,
	)

	log.Println(mapper.ToStr(ProtoUserStatus_Unknown))    // unknown
	log.Println(mapper.ToStr(ProtoUserStatus_Active))     // active
	log.Println(mapper.ToStr(ProtoUserStatus_Inactive))   // inactive
	log.Println(mapper.ToStr(ProtoUserStatus_MovedToBin)) // moved_to_bin

	log.Println(mapper.HasStr("active"))     // true
	log.Println(mapper.HasStr("not_exists")) // false

	log.Println(mapper.HasEnum(1)) // true
	log.Println(mapper.HasEnum(4)) // false
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func WithDefaultEnum

func WithDefaultEnum[E e, S s](enum E) conf.Updater[Config[E, S]]

func WithFormatter

func WithFormatter[E e, S s](formatter func(string) string) conf.Updater[Config[E, S]]

Types

type Config

type Config[E e, S s] struct {
	DefaultEnum E
	Formatter   func(string) string
}

type Mapping

type Mapping[E e, S s] struct {
	// contains filtered or unexported fields
}

func New

func New[E e, S s](
	initialMap map[int32]string,
	configurators ...conf.Updater[Config[E, S]],
) *Mapping[E, S]

func (*Mapping[E, S]) HasEnum added in v0.0.2

func (m *Mapping[E, S]) HasEnum(val E) bool

func (*Mapping[E, S]) HasStr added in v0.0.2

func (m *Mapping[E, S]) HasStr(val S) bool

func (*Mapping[E, S]) ToEnum

func (m *Mapping[E, S]) ToEnum(val S) E

func (*Mapping[E, S]) ToStr

func (m *Mapping[E, S]) ToStr(val E) S

Jump to

Keyboard shortcuts

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