MCPcopy Create free account
hub / github.com/brimdata/super / decodeType

Method decodeType

sio/jsupio/types.go:189–261  ·  view source on GitHub ↗
(sctx *super.Context, t zType)

Source from the content-addressed store, hash-verified

187type decoder map[int]super.Type
188
189func (d decoder) decodeType(sctx *super.Context, t zType) (super.Type, error) {
190 switch t := t.(type) {
191 case *zRecord:
192 typ, err := d.decodeTypeRecord(sctx, t)
193 d[t.ID] = typ
194 return typ, err
195 case *zArray:
196 inner, err := d.decodeType(sctx, t.Type)
197 if err != nil {
198 return nil, err
199 }
200 typ := sctx.LookupTypeArray(inner)
201 d[t.ID] = typ
202 return typ, nil
203 case *zSet:
204 inner, err := d.decodeType(sctx, t.Type)
205 if err != nil {
206 return nil, err
207 }
208 typ := sctx.LookupTypeSet(inner)
209 d[t.ID] = typ
210 return typ, nil
211 case *zUnion:
212 typ, err := d.decodeTypeUnion(sctx, t)
213 d[t.ID] = typ
214 return typ, err
215 case *zEnum:
216 typ, err := d.decodeTypeEnum(sctx, t)
217 d[t.ID] = typ
218 return typ, err
219 case *zMap:
220 typ, err := d.decodeTypeMap(sctx, t)
221 d[t.ID] = typ
222 return typ, err
223 case *zNamed:
224 inner, err := d.decodeType(sctx, t.Type)
225 if err != nil {
226 return nil, err
227 }
228 typ, err := sctx.LookupTypeNamed(t.Name, inner)
229 d[t.ID] = typ
230 return typ, err
231 case *zError:
232 inner, err := d.decodeType(sctx, t.Type)
233 if err != nil {
234 return nil, err
235 }
236 typ := sctx.LookupTypeError(inner)
237 d[t.ID] = typ
238 return typ, nil
239 case *zFusion:
240 inner, err := d.decodeType(sctx, t.Type)
241 if err != nil {
242 return nil, err
243 }
244 typ := sctx.LookupTypeFusion(inner)
245 d[t.ID] = typ
246 return typ, nil

Callers 5

decodeTypeRecordMethod · 0.95
decodeTypeUnionMethod · 0.95
decodeTypeMapMethod · 0.95
ReadMethod · 0.80
decodeValueMethod · 0.80

Calls 11

decodeTypeRecordMethod · 0.95
decodeTypeUnionMethod · 0.95
decodeTypeEnumMethod · 0.95
decodeTypeMapMethod · 0.95
LookupPrimitiveFunction · 0.92
LookupTypeArrayMethod · 0.80
LookupTypeSetMethod · 0.80
LookupTypeNamedMethod · 0.80
LookupTypeErrorMethod · 0.80
LookupTypeFusionMethod · 0.80
NewMethod · 0.80

Tested by

no test coverage detected