aboutsummaryrefslogtreecommitdiff
path: root/vendor/golang.org/x/text/internal/language/compact.go
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <fred@miniflux.net> 2019-09-05 21:39:32 -0700
committerGravatar Frédéric Guillot <fred@miniflux.net> 2019-09-05 21:53:12 -0700
commitb94160df725a52af53f113bf27de7a7b8723174c (patch)
tree9e86b227d4683f26da9b393410df1bedc2e95074 /vendor/golang.org/x/text/internal/language/compact.go
parent456ebaf423ce2122bf8faa36da464c5d90361204 (diff)
downloadv2-b94160df725a52af53f113bf27de7a7b8723174c.tar.gz
v2-b94160df725a52af53f113bf27de7a7b8723174c.tar.zst
v2-b94160df725a52af53f113bf27de7a7b8723174c.zip
Update dependencies
Diffstat (limited to 'vendor/golang.org/x/text/internal/language/compact.go')
-rw-r--r--vendor/golang.org/x/text/internal/language/compact.go29
1 files changed, 29 insertions, 0 deletions
diff --git a/vendor/golang.org/x/text/internal/language/compact.go b/vendor/golang.org/x/text/internal/language/compact.go
new file mode 100644
index 00000000..46a00150
--- /dev/null
+++ b/vendor/golang.org/x/text/internal/language/compact.go
@@ -0,0 +1,29 @@
+// 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.
+
+package language
+
+// CompactCoreInfo is a compact integer with the three core tags encoded.
+type CompactCoreInfo uint32
+
+// GetCompactCore generates a uint32 value that is guaranteed to be unique for
+// different language, region, and script values.
+func GetCompactCore(t Tag) (cci CompactCoreInfo, ok bool) {
+ if t.LangID > langNoIndexOffset {
+ return 0, false
+ }
+ cci |= CompactCoreInfo(t.LangID) << (8 + 12)
+ cci |= CompactCoreInfo(t.ScriptID) << 12
+ cci |= CompactCoreInfo(t.RegionID)
+ return cci, true
+}
+
+// Tag generates a tag from c.
+func (c CompactCoreInfo) Tag() Tag {
+ return Tag{
+ LangID: Language(c >> 20),
+ RegionID: Region(c & 0x3ff),
+ ScriptID: Script(c>>12) & 0xff,
+ }
+}