Add a example for go mods use

This commit is contained in:
Dan Markham 2019-04-07 23:56:38 -07:00
parent a6b59c2799
commit 24de023e5c
No known key found for this signature in database
GPG Key ID: 7994037517927D77
5 changed files with 37 additions and 1 deletions

View File

@ -20,6 +20,7 @@ When Enumer is applied to a type, it will generate:
from a REST API request... In short, from those places where using the real enum value (an integer) would
be almost meaningless or hard to trace or use by a human.
- Function `<Type>Values()`: returns a slice with all the values of the enum
- Function `<Type>Strings()`: returns a slice with all the Strings of the enum
- Method `IsA<Type>()`: returns true only if the current value is among the values of the enum. Useful for validations.
- When the flag `json` is provided, two additional methods will be generated, `MarshalJSON()` and `UnmarshalJSON()`. These make
@ -30,7 +31,7 @@ When Enumer is applied to a type, it will generate:
convert the map keys to json (strings). If not, the numeric values will be used instead
- When the flag `yaml` is provided, two additional methods will be generated, `MarshalYAML()` and `UnmarshalYAML()`. These make
the enum conform to the `gopkg.in/yaml.v2.Marshaler` and `gopkg.in/yaml.v2.Unmarshaler` interfaces.
- When the flag `sql` is provided, the methods for implementing the Scanner and Valuer interfaces will be also generated.
- When the flag `sql` is provided, the methods for implementing the `Scanner` and `Valuer` interfaces.
Useful when storing the enum in a database.
@ -63,6 +64,10 @@ func PillValues() []Pill {
//...
}
func PillStrings() []string {
//...
}
func (i Pill) IsAPill() bool {
//...
}

View File

@ -0,0 +1,8 @@
# Go Modules Sample
## Steps
1. Go get enumer `go get -u github.com/dmarkham/enumer`
2. `go generate` This should create `pill_enumer.go`
3. `go run *.go` to see it in action
4. `go mod tidy` to remove the deps for `enumer` once your happy.

3
examples/gomods/go.mod Normal file
View File

@ -0,0 +1,3 @@
module github.com/dmarkham/gomods
go 1.12

0
examples/gomods/go.sum Normal file
View File

20
examples/gomods/main.go Normal file
View File

@ -0,0 +1,20 @@
package main
import "fmt"
//go:generate go run github.com/dmarkham/enumer -type=Pill -json
type Pill int
const (
Placebo Pill = iota
Aspirin
Ibuprofen
Paracetamol
Acetaminophen = Paracetamol
)
func main() {
fmt.Println(PillStrings())
fmt.Println(Placebo.IsAPill())
fmt.Println(Placebo)
}