side.go 503 B

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