package common import ( "strings" "time" ) type DeadlineFunc func(cards int) time.Time func genFixedDeadline(timeout int) DeadlineFunc { return func(int) time.Time { return time.Now().Add(time.Duration(timeout)*time.Second) } } func genDynamicDeadline(perCard int) DeadlineFunc { return func(cards int) time.Time { return time.Now().Add(time.Duration(perCard * cards) * time.Second) } } // GenDeadline returns a function returning a deadline from a description string. func GenDeadline(desc string) (DeadlineFunc, error) { if strings.Contains(desc, "x") { perCard := 5 return genDynamicDeadline(perCard), nil } else { return genFixedDeadline(30), nil } }