Decode deserializes the APIs from data.
(data []byte)
| 170 | |
| 171 | // Decode deserializes the APIs from data. |
| 172 | func Decode(data []byte) ([]*semantic.API, *semantic.Mappings, error) { |
| 173 | d := decoder{} |
| 174 | if err := proto.Unmarshal(data, &d.content); err != nil { |
| 175 | return nil, nil, err |
| 176 | } |
| 177 | d.inst.build(d.content.Instances) |
| 178 | |
| 179 | apis := make([]*semantic.API, len(d.content.Apis)) |
| 180 | for i, id := range d.content.Apis { |
| 181 | apis[i] = d.api(id) |
| 182 | if d.err != nil { |
| 183 | return nil, nil, d.err |
| 184 | } |
| 185 | } |
| 186 | |
| 187 | mappings := d.mappings() |
| 188 | if d.err != nil { |
| 189 | return nil, nil, d.err |
| 190 | } |
| 191 | |
| 192 | for _, s := range d.toSort { |
| 193 | s.SortMembers() |
| 194 | } |
| 195 | return apis, mappings, nil |
| 196 | } |
| 197 | |
| 198 | func (d *decoder) mappings() *semantic.Mappings { |
| 199 | out := semantic.Mappings{} |
nothing calls this directly
no test coverage detected