blob: 253740cc7aac3f4d6e19bdea8217596a2919fbc5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
package avro
func walkSchema(schema Schema, fn func(Schema) Schema) Schema {
schema = fn(schema)
switch s := schema.(type) {
case *RecordSchema:
for _, f := range s.Fields() {
f.typ = walkSchema(f.typ, fn)
}
case *ArraySchema:
s.items = walkSchema(s.items, fn)
case *MapSchema:
s.values = walkSchema(s.values, fn)
case *UnionSchema:
for i, st := range s.types {
s.types[i] = walkSchema(st, fn)
}
}
return schema
}
|