| // Copyright 2013 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 colltab // import "golang.org/x/text/internal/colltab" |
| |
| // A Weighter can be used as a source for Collator and Searcher. |
| type Weighter interface { |
| // Start finds the start of the segment that includes position p. |
| Start(p int, b []byte) int |
| |
| // StartString finds the start of the segment that includes position p. |
| StartString(p int, s string) int |
| |
| // AppendNext appends Elems to buf corresponding to the longest match |
| // of a single character or contraction from the start of s. |
| // It returns the new buf and the number of bytes consumed. |
| AppendNext(buf []Elem, s []byte) (ce []Elem, n int) |
| |
| // AppendNextString appends Elems to buf corresponding to the longest match |
| // of a single character or contraction from the start of s. |
| // It returns the new buf and the number of bytes consumed. |
| AppendNextString(buf []Elem, s string) (ce []Elem, n int) |
| |
| // Domain returns a slice of all single characters and contractions for which |
| // collation elements are defined in this table. |
| Domain() []string |
| |
| // Top returns the highest variable primary value. |
| Top() uint32 |
| } |