kind.go 1.0 KB

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