side.go 525 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package sentio
  2. import (
  3. "fmt"
  4. "strings"
  5. )
  6. type Side int
  7. const (
  8. LONG Side = iota
  9. SHORT
  10. BASE
  11. )
  12. var sides = map[Side]string{
  13. LONG: "LONG",
  14. SHORT: "SHORT",
  15. BASE: "BASE",
  16. }
  17. func (s Side) String() string {
  18. side, ok := sides[s]
  19. if ok {
  20. return side
  21. }
  22. return "undefined"
  23. }
  24. func ParseSide(s string) (Side, error) {
  25. s = strings.TrimSpace(s)
  26. s = strings.ToUpper(s)
  27. for side, s2 := range sides {
  28. if s == s2 {
  29. return side, nil
  30. }
  31. }
  32. return -1, fmt.Errorf("`sentio.ParseSide`: undefined Side `%s`", s)
  33. }