MCPcopy Create free account
hub / github.com/devspace-sh/devspace / valList

Method valList

pkg/util/strvals/strvals.go:390–426  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

388}
389
390func (t *parser) valList() ([]interface{}, error) {
391 r, _, e := t.sc.ReadRune()
392 if e != nil {
393 return []interface{}{}, e
394 }
395
396 if r != '{' {
397 _ = t.sc.UnreadRune()
398 return []interface{}{}, ErrNotList
399 }
400
401 list := []interface{}{}
402 stop := runeSet([]rune{',', '}'})
403 for {
404 switch rs, last, err := runesUntil(t.sc, stop); {
405 case err != nil:
406 if err == io.EOF {
407 err = errors.New("list must terminate with '}'")
408 }
409 return list, err
410 case last == '}':
411 // If this is followed by ',', consume it.
412 if r, _, e := t.sc.ReadRune(); e == nil && r != ',' {
413 _ = t.sc.UnreadRune()
414 }
415 v, e := t.reader(rs)
416 list = append(list, v)
417 return list, e
418 case last == ',':
419 v, e := t.reader(rs)
420 if e != nil {
421 return list, e
422 }
423 list = append(list, v)
424 }
425 }
426}
427
428func runesUntil(in io.RuneReader, stop map[rune]bool) ([]rune, rune, error) {
429 v := []rune{}

Callers 2

keyMethod · 0.95
listItemMethod · 0.95

Calls 2

runeSetFunction · 0.85
runesUntilFunction · 0.85

Tested by

no test coverage detected