country

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Jan 9, 2019 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package country provides a data type for ISO-3166, and a list of countries from Unicode CLDR.

Example
package main

import (
	"fmt"

	"github.com/blueboardio/cldr/country"
)

func main() {
	FR := country.Code("FR")
	fmt.Println(FR.Emoji(), country.Countries[FR].Name)

}
Output:

🇫🇷 France

Index

Examples

Constants

This section is empty.

Variables

View Source
var Countries = map[Code]*Info{}/* 259 elements not displayed */

Countries is the list of countries from Unicode CLDR.

Source: cldr-common-34.0.zip

The following codes are removed:

QO (duplicate of UM)
ZZ (unknown)
View Source
var ErrInvalidCountryCode = errors.New("invalid country code")
View Source
var ErrInvalidSet = errors.New("invalid countries set")

Functions

This section is empty.

Types

type Code

type Code string

Code represents an ISO 3166 country code: 2 ASCII letters, uppercase. See https://www.iso.org/fr/iso-3166-country-codes.html.

func (Code) Emoji

func (cc Code) Emoji() string

Emoji converts "FR" to "🇫🇷".

func (Code) IsValid

func (cc Code) IsValid() bool

IsValid returns true if cc is a known country code. See Countries.

func (Code) MarshalText

func (cc Code) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler.

func (*Code) Scan

func (cc *Code) Scan(src interface{}) error

Scan implements database/sql.Scanner.

func (*Code) Set

func (cc *Code) Set(src string) error

Set implements flag.Value.

func (Code) String

func (cc Code) String() string

String implements fmt.Stringer.

func (*Code) UnmarshalText

func (cc *Code) UnmarshalText(src []byte) error

UnmarshalText implements encoding.TextUnmarshaler.

func (Code) Value

func (cc Code) Value() (driver.Value, error)

Value implements database/sql/driver.Valuer.

type Emoji

type Emoji struct {
	Code
}

Emoji wraps a country Code that have an external representation as a flag emoji.

"FR" => "🇫🇷"

func (Emoji) MarshalText

func (cc Emoji) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler.

func (Emoji) Set

func (cc Emoji) Set(string) error

Set forbids the use of Emoji as a flag.Value.

func (Emoji) String

func (cc Emoji) String() string

String implements fmt.Stringer.

func (Emoji) UnmarshalText

func (cc Emoji) UnmarshalText([]byte) error

UnmarshalText forbids the use of Emoji as an encoding.TextUnmarshaler.

type Info

type Info struct {
	Code       Code
	Name       string
	Currencies []currency.Code
}

type Set

type Set []Code

Set represents a set of country codes.

func (Set) Contains

func (cs Set) Contains(c Code) bool

Contains returns true if cs contains c.

func (Set) Currencies

func (cs Set) Currencies() []currency.Code

Currencies returns the set of currencies of the countries set.

func (*Set) Filter

func (cs *Set) Filter(filter Set)

Filter removes countries that are not Matched by filter.

The filter is assumed to not contain duplicates. An empty filter is a no-op (matches anything). Order is preserved.

func (Set) HasDuplicates

func (cs Set) HasDuplicates() bool

HasDuplicates checks if cs contains duplicates.

func (Set) IsValid

func (cs Set) IsValid() bool

func (Set) Len

func (cs Set) Len() int

Len implements sort.Interface.

func (Set) Less

func (cs Set) Less(i, j int) bool

Less implements sort.Interface.

func (Set) MarshalJSON

func (cs Set) MarshalJSON() ([]byte, error)

MarshalJSON implements encoding/json.Marshaler.

func (Set) MarshalText

func (cs Set) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler.

func (Set) Matches

func (cs Set) Matches(c Code) bool

Matches returns true if the set is empty (matches anything) or contains c.

Same as Contains except for the empty set case which return true for any country.

func (Set) MatchesAny

func (cs Set) MatchesAny() bool

MatchesAny returns true if the set is empty.

func (*Set) Remove

func (cs *Set) Remove(exclude Set)

Remove removes from cs the intersection of the two sets. If exclude is empty nothing is removed. Order is preserved.

func (*Set) RemoveDuplicates

func (cs *Set) RemoveDuplicates()

RemoveDuplicates remove duplicates. Order is preserved. In case of a duplicate the first one is kept.

func (*Set) Scan

func (cs *Set) Scan(src interface{}) error

func (*Set) Set

func (cs *Set) Set(src string) error

Set implements flag.Value.

func (Set) String

func (cs Set) String() string

String implements fmt.Stringer.

func (Set) Swap

func (cs Set) Swap(i, j int)

Swap implements sort.Interface.

func (*Set) UnmarshalJSON

func (cs *Set) UnmarshalJSON(b []byte) error

UnmarshalJSON implements encoding/json.Unmarshaler.

func (*Set) UnmarshalText

func (cs *Set) UnmarshalText(b []byte) error

UnmarshalText implements encoding.TextUnmarshaler.

func (Set) Value

func (cs Set) Value() (driver.Value, error)

Value() implements database/sql/driver.Valuer.

Jump to

Keyboard shortcuts

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