github.com/TBD54566975/ftl@v0.219.0/internal/model/cron_job_key.go (about) 1 package model 2 3 import ( 4 "errors" 5 "strings" 6 ) 7 8 type CronJobKey = KeyType[CronJobPayload, *CronJobPayload] 9 10 func NewCronJobKey(module, verb string) CronJobKey { 11 return newKey[CronJobPayload](strings.Join([]string{module, verb}, "-")) 12 } 13 14 func ParseCronJobKey(key string) (CronJobKey, error) { return parseKey[CronJobPayload](key) } 15 16 type CronJobPayload struct { 17 Ref string 18 } 19 20 var _ KeyPayload = (*CronJobPayload)(nil) 21 22 func (d *CronJobPayload) Kind() string { return "crn" } 23 func (d *CronJobPayload) String() string { return d.Ref } 24 func (d *CronJobPayload) Parse(parts []string) error { 25 if len(parts) == 0 { 26 return errors.New("expected <module>-<verb> but got empty string") 27 } 28 d.Ref = strings.Join(parts, "-") 29 return nil 30 } 31 func (d *CronJobPayload) RandomBytes() int { return 10 }