Source File
trie.go
Belonging Package
golang.org/x/text/unicode/norm
// 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 normtype valueRange struct {value uint16 // header: value:stridelo, hi byte // header: lo:n}type sparseBlocks struct {values []valueRangeoffset []uint16}var nfcSparse = sparseBlocks{values: nfcSparseValues[:],offset: nfcSparseOffset[:],}var nfkcSparse = sparseBlocks{values: nfkcSparseValues[:],offset: nfkcSparseOffset[:],}var (nfcData = newNfcTrie(0)nfkcData = newNfkcTrie(0))// lookup determines the type of block n and looks up the value for b.// For n < t.cutoff, the block is a simple lookup table. Otherwise, the block// is a list of ranges with an accompanying value. Given a matching range r,// the value for b is by r.value + (b - r.lo) * stride.func ( *sparseBlocks) ( uint32, byte) uint16 {:= .offset[]:= .values[]:= + 1:= + uint16(.lo)for < {:= + (-)/2:= .values[]if .lo <= && <= .hi {return .value + uint16(-.lo)*.value}if < .lo {=} else {= + 1}}return 0}
The pages are generated with Golds v0.7.6. (GOOS=linux GOARCH=amd64)