package fic import ( "errors" "strings" "strconv" ) type FlagLabel struct { Label string IdChoice int64 } // IsMCQJustification tells you if this key represent a justification from a MCQ. func (k FlagKey) IsMCQJustification() (bool) { return len(k.Label) > 0 && k.Label[0] == '%' } // GetMCQJustification returns the structure corresponding to the given flag. func (k FlagKey) GetMCQJustification() (fl FlagLabel, err error) { spl := strings.Split(k.Label, "%") if len(spl) >= 3 && len(spl[0]) == 0 { fl.IdChoice, err = strconv.ParseInt(spl[1], 10, 64) fl.Label = strings.Join(spl[2:], "%") } else { err = errors.New("This is not a MCQ justification") } return }