diff options
author | Elad <theman@elad.im> | 2018-06-05 18:40:21 +0800 |
---|---|---|
committer | Balint Gabor <balint.g@gmail.com> | 2018-06-05 18:40:21 +0800 |
commit | 5bee5d69d743e2c91e8aa0f322e4de3834bb6664 (patch) | |
tree | 7157caf164b1882ed04eabc492f311a663a3fb0f /vendor/golang.org/x/text/unicode/norm/input.go | |
parent | cbfb40b0aab093e1b612f3b16834894b2cc67882 (diff) | |
download | go-tangerine-5bee5d69d743e2c91e8aa0f322e4de3834bb6664.tar go-tangerine-5bee5d69d743e2c91e8aa0f322e4de3834bb6664.tar.gz go-tangerine-5bee5d69d743e2c91e8aa0f322e4de3834bb6664.tar.bz2 go-tangerine-5bee5d69d743e2c91e8aa0f322e4de3834bb6664.tar.lz go-tangerine-5bee5d69d743e2c91e8aa0f322e4de3834bb6664.tar.xz go-tangerine-5bee5d69d743e2c91e8aa0f322e4de3834bb6664.tar.zst go-tangerine-5bee5d69d743e2c91e8aa0f322e4de3834bb6664.zip |
vendor: added vendor packages necessary for the swarm-network-rewrite merge (#16792)
* vendor: added vendor packages necessary for the swarm-network-rewrite merge into ethereum master
* vendor: removed multihash deps
Diffstat (limited to 'vendor/golang.org/x/text/unicode/norm/input.go')
-rw-r--r-- | vendor/golang.org/x/text/unicode/norm/input.go | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/vendor/golang.org/x/text/unicode/norm/input.go b/vendor/golang.org/x/text/unicode/norm/input.go new file mode 100644 index 000000000..479e35bc2 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/input.go @@ -0,0 +1,109 @@ +// Copyright 2011 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 norm + +import "unicode/utf8" + +type input struct { + str string + bytes []byte +} + +func inputBytes(str []byte) input { + return input{bytes: str} +} + +func inputString(str string) input { + return input{str: str} +} + +func (in *input) setBytes(str []byte) { + in.str = "" + in.bytes = str +} + +func (in *input) setString(str string) { + in.str = str + in.bytes = nil +} + +func (in *input) _byte(p int) byte { + if in.bytes == nil { + return in.str[p] + } + return in.bytes[p] +} + +func (in *input) skipASCII(p, max int) int { + if in.bytes == nil { + for ; p < max && in.str[p] < utf8.RuneSelf; p++ { + } + } else { + for ; p < max && in.bytes[p] < utf8.RuneSelf; p++ { + } + } + return p +} + +func (in *input) skipContinuationBytes(p int) int { + if in.bytes == nil { + for ; p < len(in.str) && !utf8.RuneStart(in.str[p]); p++ { + } + } else { + for ; p < len(in.bytes) && !utf8.RuneStart(in.bytes[p]); p++ { + } + } + return p +} + +func (in *input) appendSlice(buf []byte, b, e int) []byte { + if in.bytes != nil { + return append(buf, in.bytes[b:e]...) + } + for i := b; i < e; i++ { + buf = append(buf, in.str[i]) + } + return buf +} + +func (in *input) copySlice(buf []byte, b, e int) int { + if in.bytes == nil { + return copy(buf, in.str[b:e]) + } + return copy(buf, in.bytes[b:e]) +} + +func (in *input) charinfoNFC(p int) (uint16, int) { + if in.bytes == nil { + return nfcData.lookupString(in.str[p:]) + } + return nfcData.lookup(in.bytes[p:]) +} + +func (in *input) charinfoNFKC(p int) (uint16, int) { + if in.bytes == nil { + return nfkcData.lookupString(in.str[p:]) + } + return nfkcData.lookup(in.bytes[p:]) +} + +func (in *input) hangul(p int) (r rune) { + var size int + if in.bytes == nil { + if !isHangulString(in.str[p:]) { + return 0 + } + r, size = utf8.DecodeRuneInString(in.str[p:]) + } else { + if !isHangul(in.bytes[p:]) { + return 0 + } + r, size = utf8.DecodeRune(in.bytes[p:]) + } + if size != hangulUTF8Size { + return 0 + } + return r +} |