Set converts a string into a MultiEncoder
(in string)
| 183 | |
| 184 | // Set converts a string into a MultiEncoder |
| 185 | func (mask *MultiEncoder) Set(in string) error { |
| 186 | var out MultiEncoder |
| 187 | parts := strings.SplitSeq(in, ",") |
| 188 | for part := range parts { |
| 189 | part = strings.TrimSpace(part) |
| 190 | if bits, ok := nameToEncoding[part]; ok { |
| 191 | out |= bits |
| 192 | } else { |
| 193 | i, err := strconv.ParseUint(part, 0, 0) |
| 194 | if err != nil { |
| 195 | return fmt.Errorf("bad encoding %q: possible values are: %s", part, ValidStrings()) |
| 196 | } |
| 197 | out |= MultiEncoder(i) |
| 198 | } |
| 199 | } |
| 200 | *mask = out |
| 201 | return nil |
| 202 | } |
| 203 | |
| 204 | // Type returns a textual type of the MultiEncoder to satisfy the pflag.Value interface |
| 205 | func (mask MultiEncoder) Type() string { |