MCPcopy Create free account
hub / github.com/sqlc-dev/sqlc / gen

Function gen

internal/config/convert/convert.go:11–69  ·  view source on GitHub ↗
(n *yaml.Node)

Source from the content-addressed store, hash-verified

9)
10
11func gen(n *yaml.Node) (interface{}, error) {
12 switch n.Kind {
13
14 case yaml.MappingNode:
15 nn := map[string]interface{}{}
16 for i, _ := range n.Content {
17 if i%2 == 0 {
18 k := n.Content[i]
19 v, err := gen(n.Content[i+1])
20 if err != nil {
21 return nil, err
22 }
23 nn[k.Value] = v
24 }
25 }
26 return nn, nil
27
28 case yaml.SequenceNode:
29 nn := []interface{}{}
30 for i, _ := range n.Content {
31 v, err := gen(n.Content[i])
32 if err != nil {
33 return nil, err
34 }
35 nn = append(nn, v)
36 }
37 return nn, nil
38
39 case yaml.ScalarNode:
40 switch n.Tag {
41
42 case "!!bool":
43 return strconv.ParseBool(n.Value)
44
45 case "!!float":
46 return strconv.ParseFloat(n.Value, 64)
47
48 case "!!int":
49 return strconv.Atoi(n.Value)
50
51 case "!!null":
52 return nil, nil
53
54 case "!!str":
55 return n.Value, nil
56
57 default:
58 return n.Value, nil
59
60 }
61
62 case yaml.AliasNode:
63 return gen(n.Alias)
64
65 default:
66 return nil, fmt.Errorf("unknown yaml value: %s (%s)", n.Value, n.Tag)
67
68 }

Callers 2

YAMLtoJSONFunction · 0.85
TestAliasFunction · 0.85

Calls

no outgoing calls

Tested by 1

TestAliasFunction · 0.68