package sentio import ( "fmt" "strings" ) // TimeInForce Specifies how long the order remains in effect. Absence of this field is interpreted as DAY. // See more at https://www.onixs.biz/fix-dictionary/4.2/tagNum_59.html type TimeInForce int var tifs = map[TimeInForce]string{ TIFDay: "DAY", TIFGoodTillCancel: "GTC", TIFOpenPriceGuarantee: "OPG", TIFImmediateOrCancel: "IOC", TIFFillOrKill: "FOK", TIFGoodTillCrossing: "GTX", TIFGoodTillDate: "GTD", } func (tif TimeInForce) String() string { t, ok := tifs[tif] if !ok { return "undefined" } return t } func ParseTimeInForce(s string) (TimeInForce, error) { s = strings.TrimSpace(s) s = strings.ToUpper(s) for t, l := range tifs { if s == l { return t, nil } } return -1, fmt.Errorf("`tif.Parse`: undefined TimeInForce `%s`", s) } const ( TIFDay TimeInForce = 0 TIFGoodTillCancel TimeInForce = 1 TIFOpenPriceGuarantee TimeInForce = 2 TIFImmediateOrCancel TimeInForce = 3 TIFFillOrKill TimeInForce = 4 TIFGoodTillCrossing TimeInForce = 5 TIFGoodTillDate TimeInForce = 6 )