// Copyright 2012 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 collate // Export for testing. // TODO: no longer necessary. Remove at some point. import ( "fmt" "golang.org/x/text/internal/colltab" ) const ( defaultSecondary = 0x20 defaultTertiary = 0x2 ) type Weights struct { Primary, Secondary, Tertiary, Quaternary int } func W(ce ...int) Weights { w := Weights{ce[0], defaultSecondary, defaultTertiary, 0} if len(ce) > 1 { w.Secondary = ce[1] } if len(ce) > 2 { w.Tertiary = ce[2] } if len(ce) > 3 { w.Quaternary = ce[3] } return w } func (w Weights) String() string { return fmt.Sprintf("[%X.%X.%X.%X]", w.Primary, w.Secondary, w.Tertiary, w.Quaternary) } func convertFromWeights(ws []Weights) []colltab.Elem { out := make([]colltab.Elem, len(ws)) for i, w := range ws { out[i], _ = colltab.MakeElem(w.Primary, w.Secondary, w.Tertiary, 0) if out[i] == colltab.Ignore && w.Quaternary > 0 { out[i] = colltab.MakeQuaternary(w.Quaternary) } } return out }