package forge
|
|
|
|
type ValueType int
|
|
|
|
const (
|
|
UNKNOWN ValueType = iota
|
|
|
|
// Primative values
|
|
BOOLEAN
|
|
FLOAT
|
|
INTEGER
|
|
NULL
|
|
STRING
|
|
|
|
// Complex values
|
|
REFERENCE
|
|
SECTION
|
|
)
|
|
|
|
var valueTypes = [...]string{
|
|
BOOLEAN: "BOOLEAN",
|
|
FLOAT: "FLOAT",
|
|
INTEGER: "INTEGER",
|
|
NULL: "NULL",
|
|
STRING: "STRING",
|
|
|
|
REFERENCE: "REFERENCE",
|
|
SECTION: "SECTION",
|
|
}
|
|
|
|
func (valueType ValueType) String() string {
|
|
str := ""
|
|
if 0 <= valueType && valueType < ValueType(len(valueTypes)) {
|
|
str = valueTypes[valueType]
|
|
}
|
|
|
|
if str == "" {
|
|
str = "UNKNOWN"
|
|
}
|
|
|
|
return str
|
|
}
|
|
|
|
type Value interface {
|
|
GetType() ValueType
|
|
GetValue() interface{}
|
|
UpdateValue(interface{}) error
|
|
}
|