kind.go raw

   1  package unstable
   2  
   3  import "fmt"
   4  
   5  // Kind represents the type of TOML structure contained in a given Node.
   6  type Kind int
   7  
   8  const (
   9  	// Meta
  10  	Invalid Kind = iota
  11  	Comment
  12  	Key
  13  
  14  	// Top level structures
  15  	Table
  16  	ArrayTable
  17  	KeyValue
  18  
  19  	// Containers values
  20  	Array
  21  	InlineTable
  22  
  23  	// Values
  24  	String
  25  	Bool
  26  	Float
  27  	Integer
  28  	LocalDate
  29  	LocalTime
  30  	LocalDateTime
  31  	DateTime
  32  )
  33  
  34  // String implementation of fmt.Stringer.
  35  func (k Kind) String() string {
  36  	switch k {
  37  	case Invalid:
  38  		return "Invalid"
  39  	case Comment:
  40  		return "Comment"
  41  	case Key:
  42  		return "Key"
  43  	case Table:
  44  		return "Table"
  45  	case ArrayTable:
  46  		return "ArrayTable"
  47  	case KeyValue:
  48  		return "KeyValue"
  49  	case Array:
  50  		return "Array"
  51  	case InlineTable:
  52  		return "InlineTable"
  53  	case String:
  54  		return "String"
  55  	case Bool:
  56  		return "Bool"
  57  	case Float:
  58  		return "Float"
  59  	case Integer:
  60  		return "Integer"
  61  	case LocalDate:
  62  		return "LocalDate"
  63  	case LocalTime:
  64  		return "LocalTime"
  65  	case LocalDateTime:
  66  		return "LocalDateTime"
  67  	case DateTime:
  68  		return "DateTime"
  69  	}
  70  	panic(fmt.Errorf("Kind.String() not implemented for '%d'", k))
  71  }
  72