type Coverage … var Supported … type allSubtags … // Regions returns the list of supported regions. As all regions are in a // consecutive range, it simply returns a slice of numbers in increasing order. // The "undefined" region is not returned. func (s allSubtags) Regions() []Region { … } // Scripts returns the list of supported scripts. As all scripts are in a // consecutive range, it simply returns a slice of numbers in increasing order. // The "undefined" script is not returned. func (s allSubtags) Scripts() []Script { … } // BaseLanguages returns the list of all supported base languages. It generates // the list by traversing the internal structures. func (s allSubtags) BaseLanguages() []Base { … } // Tags always returns nil. func (s allSubtags) Tags() []Tag { … } type coverage … func (s *coverage) Tags() []Tag { … } type bases … func (b bases) Len() int { … } func (b bases) Swap(i, j int) { … } func (b bases) Less(i, j int) bool { … } // BaseLanguages returns the result from calling s.bases if it is specified or // otherwise derives the set of supported base languages from tags. func (s *coverage) BaseLanguages() []Base { … } func (s *coverage) Scripts() []Script { … } func (s *coverage) Regions() []Region { … } // NewCoverage returns a Coverage for the given lists. It is typically used by // packages providing internationalization services to define their level of // coverage. A list may be of type []T or func() []T, where T is either Tag, // Base, Script or Region. The returned Coverage derives the value for Bases // from Tags if no func or slice for []Base is specified. For other unspecified // types the returned Coverage will return nil for the respective methods. func NewCoverage(list ...interface{ … }