| // 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: consider this and removing rune from the Format method in the |
| // Formatter interface. |
| // |
| // Verb returns the format variant to render, analogous to the types used |
| // in fmt. Use 'v' for the default or only variant. |
| // Verb() rune |
| |
| // TODO: more info: |
| // - sentence context such as linguistic features passed by the translator. |
| } |
| |
| // Formatter is analogous to fmt.Formatter. |
| type Formatter interface { |
| Format(state State, verb rune) |
| } |