written by hand - just enough to compile rsc.io/sampler, rsc.io/quote -- .mod -- module golang.org/x/text -- .info -- {"Version":"v0.0.0-20170915032832-14c0d48ead0c","Name":"v0.0.0-20170915032832-14c0d48ead0c","Short":"14c0d48ead0c","Time":"2017-09-15T03:28:32Z"} -- go.mod -- module golang.org/x/text -- unused/unused.go -- package unused -- language/lang.go -- // Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // This is a tiny version of golang.org/x/text. package language import "strings" type Tag string func Make(s string) Tag { return Tag(s) } func (t Tag) String() string { return string(t) } func NewMatcher(tags []Tag) Matcher { return &matcher{tags} } type Matcher interface { Match(...Tag) (Tag, int, int) } type matcher struct { tags []Tag } func (m *matcher) Match(prefs ...Tag) (Tag, int, int) { for _, pref := range prefs { for _, tag := range m.tags { if tag == pref || strings.HasPrefix(string(pref), string(tag+"-")) || strings.HasPrefix(string(tag), string(pref+"-")) { return tag, 0, 0 } } } return m.tags[0], 0, 0 }