golang.org/x/tools@v0.21.1-0.20240520172518-788d39e776b1/internal/imports/testdata/mod/golang.org_x_text_v0.0.0-20170915032832-14c0d48ead0c.txt (about) 1 written by hand - just enough to compile rsc.io/sampler, rsc.io/quote 2 3 -- .mod -- 4 module golang.org/x/text 5 -- .info -- 6 {"Version":"v0.0.0-20170915032832-14c0d48ead0c","Name":"v0.0.0-20170915032832-14c0d48ead0c","Short":"14c0d48ead0c","Time":"2017-09-15T03:28:32Z"} 7 -- go.mod -- 8 module golang.org/x/text 9 -- unused/unused.go -- 10 package unused 11 -- language/lang.go -- 12 // Copyright 2018 The Go Authors. All rights reserved. 13 // Use of this source code is governed by a BSD-style 14 // license that can be found in the LICENSE file. 15 16 // This is a tiny version of golang.org/x/text. 17 18 package language 19 20 import "strings" 21 22 type Tag string 23 24 func Make(s string) Tag { return Tag(s) } 25 26 func (t Tag) String() string { return string(t) } 27 28 func NewMatcher(tags []Tag) Matcher { return &matcher{tags} } 29 30 type Matcher interface { 31 Match(...Tag) (Tag, int, int) 32 } 33 34 type matcher struct { 35 tags []Tag 36 } 37 38 func (m *matcher) Match(prefs ...Tag) (Tag, int, int) { 39 for _, pref := range prefs { 40 for _, tag := range m.tags { 41 if tag == pref || strings.HasPrefix(string(pref), string(tag+"-")) || strings.HasPrefix(string(tag), string(pref+"-")) { 42 return tag, 0, 0 43 } 44 } 45 } 46 return m.tags[0], 0, 0 47 }