func UnbindFmtString()

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
}