side.go 481 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package sentio
  2. import (
  3. "errors"
  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 SideFromString(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, errors.New("unknown Side")
  31. }