Product Promotion
0x5a.live
for different kinds of informations and explorations.
GitHub - mikekonan/go-countries
Contribute to mikekonan/go-countries development by creating an account on GitHub.
Visit SiteGitHub - mikekonan/go-countries
Contribute to mikekonan/go-countries development by creating an account on GitHub.
Powered by 0x5a.live ๐
go-countries
Lightweight lookup over ISO-3166 codes. Each unit implements driver.Valuer
, ozzo validation.Validate
, Stringer
, json.Unmarshaler
interfaces.
This library has been created with the purpose to facilitate search and transfer of ISO-3166 country codes.
Created with a codegen - check generator branch.
Installation
go get github.com/mikekonan/go-countries
Usage:
//1. use in your structs
type User struct {
Name string `json:"name" db:"name"`
Country country.Alpha2Code `json:"country" db:"country"`
}
func main() {
user := User{}
//2. use in your wire
json.Unmarshal([]byte(`{"name":"name", "country": "ca"}`), &user)
//3. check is set
user.Country.IsSet() //check user country is provided
//4. validate using ozzo-validation
if err := validation.ValidateStruct(&user, validation.Field(&user.Country, validation.Required, user.Country)); err != nil {
log.Fatal(err)
}
//5. lookup by alpha2, alpha3, country name
if userCountry, ok := country.ByAlpha2Code(user.Country); ok {
fmt.Printf("country name - '%s', alpha-2 - '%s', alpha-3 - '%s'", userCountry.Name(), userCountry.Alpha2Code(), userCountry.Alpha3Code())
}
//6. store in db
fmt.Println(user.Country.Value()) //prints 'CA'
//7. use specific countries
fmt.Println(country.Canada.Alpha2Code())
}
API
Lookup:
country.ByNameStrErr()
country.ByNameErr()
country.ByNameStr()
country.ByName()
country.ByAlpha2CodeStrErr()
country.ByAlpha2CodeErr()
country.ByAlpha2CodeStr()
country.ByAlpha2Code()
country.ByAlpha3CodeStrErr()
country.ByAlpha3CodeErr()
country.ByAlpha3CodeStr()
country.ByAlpha3Code()
Constants:
...
country.Canada
country.Alpha2CA
country.Alpha3CAN
country.NameCanada
...
Types:
type Country struct {
name Name
alpha2 Alpha2Code
alpha3 Alpha3Code
}
func (c Country) Name() Name { return c.name }
func (c Country) Alpha2Code() Alpha2Code { return c.alpha2 }
func (c Country) Alpha3Code() Alpha3Code { return c.alpha3 }
func (c Country) NameStr() string { return c.name.String() }
func (c Country) Alpha2CodeStr() string { return c.alpha2.String() }
func (c Country) Alpha3CodeStr() string { return c.alpha3.String() }
GoLang Resources
are all listed below.
GitHub - GuilhermeCaruso/anko: :crystal_ball: Simple application watcher
resource
~/github.com
resource
GitHub - jidicula/go-fuzz-action: GitHub Action for Go 1.18 fuzz testing
resource
~/github.com
resource
GitHub - tucnak/climax: Climax is an alternative CLI with the human face
resource
~/github.com
resource
GitHub - lawrencewoodman/roveralls: A Go recursive coverage testing tool
resource
~/github.com
resource
GitHub - nakagami/firebirdsql: Firebird RDBMS sql driver for Go (golang)
resource
~/github.com
resource
GitHub - liweiyi88/onedump: Effortlessly database dump with one command.
resource
~/github.com
resource
GitHub - beefsack/go-astar: Go implementation of the A* search algorithm
resource
~/github.com
resource
GitHub - lxn/walk: A Windows GUI toolkit for the Go Programming Language
resource
~/github.com
resource
GitHub - mongodb/mongo-go-driver: The Official Golang driver for MongoDB
resource
~/github.com
resource
GitHub - bykof/gostradamus: Gostradamus: Better DateTimes for Go ๐ฐ๏ธ
resource
~/github.com
resource
GitHub - mozillazg/go-unidecode: ASCII transliterations of Unicode text.
resource
~/github.com
resource
GitHub - bolknote/go-gd: Go bingings for GD (http://www.boutell.com/gd/)
resource
~/github.com
resource
GitHub - mosajjal/dnsmonster: Passive DNS Capture and Monitoring Toolkit
resource
~/github.com
resource
GitHub - haxpax/gosms: :mailbox_closed: Your own local SMS gateway in Go
resource
~/github.com
resource
GitHub - wajox/gobase: This is a simple skeleton for golang applications
resource
~/github.com
resource
GitHub - VividCortex/gohistogram: Streaming approximate histograms in Go
resource
~/github.com
resource
GitHub - malaschitz/randomForest: Random Forest implementation in golang
resource
~/github.com
resource
GitHub - google/gopacket: Provides packet processing capabilities for Go
resource
~/github.com
resource
GitHub - khezen/evoli: Genetic Algorithm and Particle Swarm Optimization
resource
~/github.com
resource
GitHub - didip/tollbooth: Simple middleware to rate-limit HTTP requests.
resource
~/github.com
resource
GitHub - mustafaakin/gongular: A different approach to Go web frameworks
resource
~/github.com
resource
GitHub - songgao/colorgo: Colorize (highlight) `go build` command output
resource
~/github.com
resource
Made with โค๏ธ
to provide different kinds of informations and resources.