in wfn/fsb.go [45:81]
func UnbindFmtString(s string) (*Attributes, error) {
if !strings.HasPrefix(s, fsbPrefix) {
return nil, fmt.Errorf("bad prefix in FSB %q", s)
}
attr := &Attributes{}
for i, partN := len(fsbPrefix), 0; i < len(s); i, partN = i+1, partN+1 {
var err error
switch partN {
case 0:
attr.Part, i, err = unbindValueFSAt(s, i)
case 1:
attr.Vendor, i, err = unbindValueFSAt(s, i)
case 2:
attr.Product, i, err = unbindValueFSAt(s, i)
case 3:
attr.Version, i, err = unbindValueFSAt(s, i)
case 4:
attr.Update, i, err = unbindValueFSAt(s, i)
case 5:
attr.Edition, i, err = unbindValueFSAt(s, i)
case 6:
attr.Language, i, err = unbindValueFSAt(s, i)
case 7:
attr.SWEdition, i, err = unbindValueFSAt(s, i)
case 8:
attr.TargetSW, i, err = unbindValueFSAt(s, i)
case 9:
attr.TargetHW, i, err = unbindValueFSAt(s, i)
case 10:
attr.Other, i, err = unbindValueFSAt(s, i)
}
if err != nil {
return nil, fmt.Errorf("unbind formatted string: %v", err)
}
}
return attr, nil
}