code: func (b *UnmarshallableBool) UnmarshalText(data []byte) error {
  	s := strings.ToLower(string(data))
  	switch s {
  	case "1", "true":
  		*b = true
  	case "0", "false":
  		*b = false
  	default:
  		return fmt.Errorf("Boolean unmarshal error: invalid input %s", s)
  	}
  	return nil
  }
docs: // UnmarshalText implements the encoding.TextUnmarshaler interface.
  // Returns boolean true if the string is "1" or "[Tt]rue"
  // Returns boolean false if the string is "0" or "[Ff]alse"