diff options
author | 2019-09-05 21:39:32 -0700 | |
---|---|---|
committer | 2019-09-05 21:53:12 -0700 | |
commit | b94160df725a52af53f113bf27de7a7b8723174c (patch) | |
tree | 9e86b227d4683f26da9b393410df1bedc2e95074 /vendor/golang.org/x/text/internal/language/compact.go | |
parent | 456ebaf423ce2122bf8faa36da464c5d90361204 (diff) | |
download | v2-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.go | 29 |
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, + } +} |