Add some convenience functions to initialize NaturalLanguageValues properties
This commit is contained in:
parent
1c6c4d8444
commit
1ffdb48e69
|
@ -15,6 +15,9 @@ import (
|
||||||
// It is used for LangRefValue objects without an explicit language key.
|
// It is used for LangRefValue objects without an explicit language key.
|
||||||
const NilLangRef LangRef = "-"
|
const NilLangRef LangRef = "-"
|
||||||
|
|
||||||
|
// DefaultLang represents the default language reference used when using the convenience content generation.
|
||||||
|
var DefaultLang = NilLangRef
|
||||||
|
|
||||||
type (
|
type (
|
||||||
// LangRef is the type for a language reference code, should be an ISO639-1 language specifier.
|
// LangRef is the type for a language reference code, should be an ISO639-1 language specifier.
|
||||||
LangRef string
|
LangRef string
|
||||||
|
@ -29,8 +32,16 @@ type (
|
||||||
NaturalLanguageValues []LangRefValue
|
NaturalLanguageValues []LangRefValue
|
||||||
)
|
)
|
||||||
|
|
||||||
func NaturalLanguageValuesNew() NaturalLanguageValues {
|
func NaturalLanguageValuesNew(values ...LangRefValue) NaturalLanguageValues {
|
||||||
return make(NaturalLanguageValues, 0)
|
n := make(NaturalLanguageValues, len(values))
|
||||||
|
for i, val := range values {
|
||||||
|
n[i] = val
|
||||||
|
}
|
||||||
|
return n
|
||||||
|
}
|
||||||
|
|
||||||
|
func DefaultNaturalLanguageValue(content string) NaturalLanguageValues {
|
||||||
|
return NaturalLanguageValuesNew(DefaultLangRef(content))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n NaturalLanguageValues) String() string {
|
func (n NaturalLanguageValues) String() string {
|
||||||
|
@ -74,6 +85,10 @@ func (n *NaturalLanguageValues) Set(ref LangRef, v Content) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (n *NaturalLanguageValues) Add(ref LangRefValue) {
|
||||||
|
*n = append(*n, ref)
|
||||||
|
}
|
||||||
|
|
||||||
// MarshalJSON encodes the receiver object to a JSON document.
|
// MarshalJSON encodes the receiver object to a JSON document.
|
||||||
func (n NaturalLanguageValues) MarshalJSON() ([]byte, error) {
|
func (n NaturalLanguageValues) MarshalJSON() ([]byte, error) {
|
||||||
l := len(n)
|
l := len(n)
|
||||||
|
@ -183,6 +198,14 @@ func (l LangRefValue) String() string {
|
||||||
return fmt.Sprintf("%s[%s]", l.Value, l.Ref)
|
return fmt.Sprintf("%s[%s]", l.Value, l.Ref)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func DefaultLangRef(value string) LangRefValue {
|
||||||
|
return LangRefValue{Ref: DefaultLang, Value: Content(value)}
|
||||||
|
}
|
||||||
|
|
||||||
|
func LangRefValueNew(lang LangRef, value string) LangRefValue {
|
||||||
|
return LangRefValue{Ref: lang, Value: Content(value)}
|
||||||
|
}
|
||||||
|
|
||||||
func (l LangRefValue) Format(s fmt.State, verb rune) {
|
func (l LangRefValue) Format(s fmt.State, verb rune) {
|
||||||
switch verb {
|
switch verb {
|
||||||
case 's', 'q':
|
case 's', 'q':
|
||||||
|
|
Reference in a new issue