bool.go 769 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package muesli
  2. const BoolType = TypeValue("Bool")
  3. // IntValue are Muesli booleans
  4. type BoolValue bool
  5. const (
  6. // TrueValue is the Muesli side equvalent to true
  7. TrueValue = BoolValue(true)
  8. // FalseValue is the Muesli side equvalent to false
  9. FalseValue = BoolValue(false)
  10. )
  11. func (val BoolValue) String() string {
  12. if bool(val) {
  13. return "true"
  14. } else {
  15. return "false"
  16. }
  17. }
  18. func (v BoolValue) Type() TypeValue { return BoolType }
  19. func (from BoolValue) Convert(to interface{}) error {
  20. switch toPtr := to.(type) {
  21. case *bool:
  22. (*toPtr) = bool(from)
  23. case *BoolValue:
  24. (*toPtr) = from
  25. case *Value:
  26. (*toPtr) = from
  27. default:
  28. return NewErrorValuef("Cannot convert value %v to %v", from, to)
  29. }
  30. return nil
  31. }