summaryrefslogtreecommitdiffstats
path: root/vendor/golang.org/x/text/internal/format
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/golang.org/x/text/internal/format')
-rw-r--r--vendor/golang.org/x/text/internal/format/format.go43
-rw-r--r--vendor/golang.org/x/text/internal/format/plural/plural.go38
2 files changed, 81 insertions, 0 deletions
diff --git a/vendor/golang.org/x/text/internal/format/format.go b/vendor/golang.org/x/text/internal/format/format.go
new file mode 100644
index 000000000..c70bc0fe2
--- /dev/null
+++ b/vendor/golang.org/x/text/internal/format/format.go
@@ -0,0 +1,43 @@
+// Copyright 2015 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 format contains types for defining language-specific formatting of
+// values.
+//
+// This package is internal now, but will eventually be exposed after the API
+// settles.
+package format // import "golang.org/x/text/internal/format"
+
+import (
+ "fmt"
+
+ "golang.org/x/text/language"
+)
+
+// State represents the printer state passed to custom formatters. It provides
+// access to the fmt.State interface and the sentence and language-related
+// context.
+type State interface {
+ fmt.State
+
+ // Language reports the requested language in which to render a message.
+ Language() language.Tag
+
+ // TODO: more info:
+ // - sentence context
+ // - user preferences, like measurement systems
+ // - options
+}
+
+// A Statement is a Var or an Expression.
+type Statement interface {
+ statement()
+}
+
+// A String a literal string format.
+type String string
+
+func (String) statement() {}
+
+// TODO: Select, Var, Case, StatementSequence
diff --git a/vendor/golang.org/x/text/internal/format/plural/plural.go b/vendor/golang.org/x/text/internal/format/plural/plural.go
new file mode 100644
index 000000000..524d6aaff
--- /dev/null
+++ b/vendor/golang.org/x/text/internal/format/plural/plural.go
@@ -0,0 +1,38 @@
+// Copyright 2016 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 plural defines the grammatical plural feature.
+//
+// The definitions in this package are based on the plural rule handling defined
+// in CLDR. See
+// http://unicode.org/reports/tr35/tr35-numbers.html#Language_Plural_Rules for
+// details.
+package plural
+
+import "golang.org/x/text/internal/format"
+
+// Form defines a plural form. The meaning of plural forms, as well as which
+// forms are supported, vary per language. Each language must at least support
+// the form "other".
+type Form byte
+
+const (
+ Other Form = iota
+ Zero
+ One
+ Two
+ Few
+ Many
+)
+
+// Interface is implemented by values that have a plural feature.
+type Interface interface {
+ // PluralForm reports the plural form of a value, depending on the
+ // language declared by the given state.
+ PluralForm(s format.State) Form
+}
+
+// TODO
+// - Select function
+// - Definition for message package.