summaryrefslogtreecommitdiff
path: root/vendor/golang.org/x/text/internal/cldrtree/option.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/golang.org/x/text/internal/cldrtree/option.go')
-rw-r--r--vendor/golang.org/x/text/internal/cldrtree/option.go86
1 files changed, 0 insertions, 86 deletions
diff --git a/vendor/golang.org/x/text/internal/cldrtree/option.go b/vendor/golang.org/x/text/internal/cldrtree/option.go
deleted file mode 100644
index f91e250..0000000
--- a/vendor/golang.org/x/text/internal/cldrtree/option.go
+++ /dev/null
@@ -1,86 +0,0 @@
-// Copyright 2017 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 cldrtree
-
-import (
- "reflect"
-
- "golang.org/x/text/unicode/cldr"
-)
-
-// An Option configures an Index.
-type Option func(*options)
-
-type options struct {
- parent *Index
-
- name string
- alias *cldr.Common
-
- sharedType *typeInfo
- sharedEnums *enum
-}
-
-func (o *options) fill(opt []Option) {
- for _, f := range opt {
- f(o)
- }
-}
-
-// aliasOpt sets an alias from the given node, if the node defines one.
-func (o *options) setAlias(n Element) {
- if n != nil && !reflect.ValueOf(n).IsNil() {
- o.alias = n.GetCommon()
- }
-}
-
-// Enum defines a enumeration type. The resulting option may be passed for the
-// construction of multiple Indexes, which they will share the same enum values.
-// Calling Gen on a Builder will generate the Enum for the given name. The
-// optional values fix the values for the given identifier to the argument
-// position (starting at 0). Other values may still be added and will be
-// assigned to subsequent values.
-func Enum(name string, value ...string) Option {
- return EnumFunc(name, nil, value...)
-}
-
-// EnumFunc is like Enum but also takes a function that allows rewriting keys.
-func EnumFunc(name string, rename func(string) string, value ...string) Option {
- enum := &enum{name: name, rename: rename, keyMap: map[string]enumIndex{}}
- for _, e := range value {
- enum.lookup(e)
- }
- return func(o *options) {
- found := false
- for _, e := range o.parent.meta.b.enums {
- if e.name == enum.name {
- found = true
- break
- }
- }
- if !found {
- o.parent.meta.b.enums = append(o.parent.meta.b.enums, enum)
- }
- o.sharedEnums = enum
- }
-}
-
-// SharedType returns an option which causes all Indexes to which this option is
-// passed to have the same type.
-func SharedType() Option {
- info := &typeInfo{}
- return func(o *options) { o.sharedType = info }
-}
-
-func useSharedType() Option {
- return func(o *options) {
- sub := o.parent.meta.typeInfo.keyTypeInfo
- if sub == nil {
- sub = &typeInfo{}
- o.parent.meta.typeInfo.keyTypeInfo = sub
- }
- o.sharedType = sub
- }
-}