| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // This file is autogenerated by: |
| // mojo/public/tools/bindings/mojom_bindings_generator.py |
| // For: |
| // mojo/public/interfaces/bindings/mojom_files.mojom |
| // |
| |
| package mojom_files |
| |
| import ( |
| fmt "fmt" |
| bindings "mojo/public/go/bindings" |
| mojom_types "mojom/generated/mojom_types" |
| sort "sort" |
| ) |
| |
| type MojomFile struct { |
| FileName string |
| SpecifiedFileName *string |
| ModuleNamespace *string |
| Attributes *[]mojom_types.Attribute |
| Imports *[]string |
| DeclaredMojomObjects KeysByType |
| SerializedRuntimeTypeInfo *string |
| } |
| |
| func (s *MojomFile) Encode(encoder *bindings.Encoder) error { |
| encoder.StartStruct(56, 0) |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := encoder.WriteString(s.FileName); err != nil { |
| return err |
| } |
| if s.SpecifiedFileName == nil { |
| encoder.WriteNullPointer() |
| } else { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := encoder.WriteString((*s.SpecifiedFileName)); err != nil { |
| return err |
| } |
| } |
| if s.ModuleNamespace == nil { |
| encoder.WriteNullPointer() |
| } else { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := encoder.WriteString((*s.ModuleNamespace)); err != nil { |
| return err |
| } |
| } |
| if s.Attributes == nil { |
| encoder.WriteNullPointer() |
| } else { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len((*s.Attributes))), 64) |
| for _, elem0 := range *s.Attributes { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := elem0.Encode(encoder); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| } |
| if s.Imports == nil { |
| encoder.WriteNullPointer() |
| } else { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len((*s.Imports))), 64) |
| for _, elem0 := range *s.Imports { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := encoder.WriteString(elem0); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| } |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := s.DeclaredMojomObjects.Encode(encoder); err != nil { |
| return err |
| } |
| if s.SerializedRuntimeTypeInfo == nil { |
| encoder.WriteNullPointer() |
| } else { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := encoder.WriteString((*s.SerializedRuntimeTypeInfo)); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| var mojomFile_Versions []bindings.DataHeader = []bindings.DataHeader{ |
| bindings.DataHeader{64, 0}, |
| } |
| |
| func (s *MojomFile) Decode(decoder *bindings.Decoder) error { |
| header, err := decoder.StartStruct() |
| if err != nil { |
| return err |
| } |
| index := sort.Search(len(mojomFile_Versions), func(i int) bool { |
| return mojomFile_Versions[i].ElementsOrVersion >= header.ElementsOrVersion |
| }) |
| if index < len(mojomFile_Versions) { |
| if mojomFile_Versions[index].ElementsOrVersion > header.ElementsOrVersion { |
| index-- |
| } |
| expectedSize := mojomFile_Versions[index].Size |
| if expectedSize != header.Size { |
| return &bindings.ValidationError{bindings.UnexpectedStructHeader, |
| fmt.Sprintf("invalid struct header size: should be %d, but was %d", expectedSize, header.Size), |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| value0, err := decoder.ReadString() |
| if err != nil { |
| return err |
| } |
| s.FileName = value0 |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| s.SpecifiedFileName = nil |
| } else { |
| s.SpecifiedFileName = new(string) |
| value0, err := decoder.ReadString() |
| if err != nil { |
| return err |
| } |
| (*s.SpecifiedFileName) = value0 |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| s.ModuleNamespace = nil |
| } else { |
| s.ModuleNamespace = new(string) |
| value0, err := decoder.ReadString() |
| if err != nil { |
| return err |
| } |
| (*s.ModuleNamespace) = value0 |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| s.Attributes = nil |
| } else { |
| s.Attributes = new([]mojom_types.Attribute) |
| len0, err := decoder.StartArray(64) |
| if err != nil { |
| return err |
| } |
| (*s.Attributes) = make([]mojom_types.Attribute, len0) |
| for i0 := uint32(0); i0 < len0; i0++ { |
| pointer1, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer1 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| if err := (*s.Attributes)[i0].Decode(decoder); err != nil { |
| return err |
| } |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| s.Imports = nil |
| } else { |
| s.Imports = new([]string) |
| len0, err := decoder.StartArray(64) |
| if err != nil { |
| return err |
| } |
| (*s.Imports) = make([]string, len0) |
| for i0 := uint32(0); i0 < len0; i0++ { |
| pointer1, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer1 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| value1, err := decoder.ReadString() |
| if err != nil { |
| return err |
| } |
| (*s.Imports)[i0] = value1 |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| if err := s.DeclaredMojomObjects.Decode(decoder); err != nil { |
| return err |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| s.SerializedRuntimeTypeInfo = nil |
| } else { |
| s.SerializedRuntimeTypeInfo = new(string) |
| value0, err := decoder.ReadString() |
| if err != nil { |
| return err |
| } |
| (*s.SerializedRuntimeTypeInfo) = value0 |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| type MojomFileGraph struct { |
| Files map[string]MojomFile |
| ResolvedTypes map[string]mojom_types.UserDefinedType |
| ResolvedConstants map[string]mojom_types.DeclaredConstant |
| } |
| |
| func (s *MojomFileGraph) Encode(encoder *bindings.Encoder) error { |
| encoder.StartStruct(24, 0) |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartMap() |
| { |
| var keys0 []string |
| var values0 []MojomFile |
| if encoder.Deterministic() { |
| for key0, _ := range s.Files { |
| keys0 = append(keys0, key0) |
| } |
| bindings.SortMapKeys(&keys0) |
| values0 = make([]MojomFile, len(keys0)) |
| for i, key := range keys0 { |
| values0[i] = s.Files[key] |
| } |
| } else { |
| for key0, value0 := range s.Files { |
| keys0 = append(keys0, key0) |
| values0 = append(values0, value0) |
| } |
| } |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len(keys0)), 64) |
| for _, elem1 := range keys0 { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := encoder.WriteString(elem1); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len(values0)), 64) |
| for _, elem1 := range values0 { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := elem1.Encode(encoder); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartMap() |
| { |
| var keys0 []string |
| var values0 []mojom_types.UserDefinedType |
| if encoder.Deterministic() { |
| for key0, _ := range s.ResolvedTypes { |
| keys0 = append(keys0, key0) |
| } |
| bindings.SortMapKeys(&keys0) |
| values0 = make([]mojom_types.UserDefinedType, len(keys0)) |
| for i, key := range keys0 { |
| values0[i] = s.ResolvedTypes[key] |
| } |
| } else { |
| for key0, value0 := range s.ResolvedTypes { |
| keys0 = append(keys0, key0) |
| values0 = append(values0, value0) |
| } |
| } |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len(keys0)), 64) |
| for _, elem1 := range keys0 { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := encoder.WriteString(elem1); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len(values0)), 128) |
| for _, elem1 := range values0 { |
| if elem1 == nil { |
| return &bindings.ValidationError{bindings.UnexpectedNullUnion, "unexpected null union"} |
| } |
| if err := elem1.Encode(encoder); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartMap() |
| { |
| var keys0 []string |
| var values0 []mojom_types.DeclaredConstant |
| if encoder.Deterministic() { |
| for key0, _ := range s.ResolvedConstants { |
| keys0 = append(keys0, key0) |
| } |
| bindings.SortMapKeys(&keys0) |
| values0 = make([]mojom_types.DeclaredConstant, len(keys0)) |
| for i, key := range keys0 { |
| values0[i] = s.ResolvedConstants[key] |
| } |
| } else { |
| for key0, value0 := range s.ResolvedConstants { |
| keys0 = append(keys0, key0) |
| values0 = append(values0, value0) |
| } |
| } |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len(keys0)), 64) |
| for _, elem1 := range keys0 { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := encoder.WriteString(elem1); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len(values0)), 64) |
| for _, elem1 := range values0 { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := elem1.Encode(encoder); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| var mojomFileGraph_Versions []bindings.DataHeader = []bindings.DataHeader{ |
| bindings.DataHeader{32, 0}, |
| } |
| |
| func (s *MojomFileGraph) Decode(decoder *bindings.Decoder) error { |
| header, err := decoder.StartStruct() |
| if err != nil { |
| return err |
| } |
| index := sort.Search(len(mojomFileGraph_Versions), func(i int) bool { |
| return mojomFileGraph_Versions[i].ElementsOrVersion >= header.ElementsOrVersion |
| }) |
| if index < len(mojomFileGraph_Versions) { |
| if mojomFileGraph_Versions[index].ElementsOrVersion > header.ElementsOrVersion { |
| index-- |
| } |
| expectedSize := mojomFileGraph_Versions[index].Size |
| if expectedSize != header.Size { |
| return &bindings.ValidationError{bindings.UnexpectedStructHeader, |
| fmt.Sprintf("invalid struct header size: should be %d, but was %d", expectedSize, header.Size), |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| if err := decoder.StartMap(); err != nil { |
| return err |
| } |
| var keys0 []string |
| { |
| pointer1, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer1 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| len1, err := decoder.StartArray(64) |
| if err != nil { |
| return err |
| } |
| keys0 = make([]string, len1) |
| for i1 := uint32(0); i1 < len1; i1++ { |
| pointer2, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer2 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| value2, err := decoder.ReadString() |
| if err != nil { |
| return err |
| } |
| keys0[i1] = value2 |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| var values0 []MojomFile |
| { |
| pointer1, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer1 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| len1, err := decoder.StartArray(64) |
| if err != nil { |
| return err |
| } |
| values0 = make([]MojomFile, len1) |
| for i1 := uint32(0); i1 < len1; i1++ { |
| pointer2, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer2 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| if err := values0[i1].Decode(decoder); err != nil { |
| return err |
| } |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| if len(keys0) != len(values0) { |
| return &bindings.ValidationError{bindings.DifferentSizedArraysInMap, |
| fmt.Sprintf("Number of keys %d is different from number of values %d", len(keys0), len(values0)), |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| len0 := len(keys0) |
| map0 := make(map[string]MojomFile) |
| for i0 := 0; i0 < len0; i0++ { |
| map0[keys0[i0]] = values0[i0] |
| } |
| s.Files = map0 |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| if err := decoder.StartMap(); err != nil { |
| return err |
| } |
| var keys0 []string |
| { |
| pointer1, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer1 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| len1, err := decoder.StartArray(64) |
| if err != nil { |
| return err |
| } |
| keys0 = make([]string, len1) |
| for i1 := uint32(0); i1 < len1; i1++ { |
| pointer2, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer2 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| value2, err := decoder.ReadString() |
| if err != nil { |
| return err |
| } |
| keys0[i1] = value2 |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| var values0 []mojom_types.UserDefinedType |
| { |
| pointer1, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer1 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| len1, err := decoder.StartArray(128) |
| if err != nil { |
| return err |
| } |
| values0 = make([]mojom_types.UserDefinedType, len1) |
| for i1 := uint32(0); i1 < len1; i1++ { |
| var err error |
| values0[i1], err = mojom_types.DecodeUserDefinedType(decoder) |
| if err != nil { |
| return err |
| } |
| if values0[i1] == nil { |
| return &bindings.ValidationError{bindings.UnexpectedNullUnion, "unexpected null union"} |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| if len(keys0) != len(values0) { |
| return &bindings.ValidationError{bindings.DifferentSizedArraysInMap, |
| fmt.Sprintf("Number of keys %d is different from number of values %d", len(keys0), len(values0)), |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| len0 := len(keys0) |
| map0 := make(map[string]mojom_types.UserDefinedType) |
| for i0 := 0; i0 < len0; i0++ { |
| map0[keys0[i0]] = values0[i0] |
| } |
| s.ResolvedTypes = map0 |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| if err := decoder.StartMap(); err != nil { |
| return err |
| } |
| var keys0 []string |
| { |
| pointer1, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer1 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| len1, err := decoder.StartArray(64) |
| if err != nil { |
| return err |
| } |
| keys0 = make([]string, len1) |
| for i1 := uint32(0); i1 < len1; i1++ { |
| pointer2, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer2 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| value2, err := decoder.ReadString() |
| if err != nil { |
| return err |
| } |
| keys0[i1] = value2 |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| var values0 []mojom_types.DeclaredConstant |
| { |
| pointer1, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer1 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| len1, err := decoder.StartArray(64) |
| if err != nil { |
| return err |
| } |
| values0 = make([]mojom_types.DeclaredConstant, len1) |
| for i1 := uint32(0); i1 < len1; i1++ { |
| pointer2, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer2 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| if err := values0[i1].Decode(decoder); err != nil { |
| return err |
| } |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| if len(keys0) != len(values0) { |
| return &bindings.ValidationError{bindings.DifferentSizedArraysInMap, |
| fmt.Sprintf("Number of keys %d is different from number of values %d", len(keys0), len(values0)), |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| len0 := len(keys0) |
| map0 := make(map[string]mojom_types.DeclaredConstant) |
| for i0 := 0; i0 < len0; i0++ { |
| map0[keys0[i0]] = values0[i0] |
| } |
| s.ResolvedConstants = map0 |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| type KeysByType struct { |
| Interfaces *[]string |
| Structs *[]string |
| Unions *[]string |
| TopLevelEnums *[]string |
| EmbeddedEnums *[]string |
| TopLevelConstants *[]string |
| EmbeddedConstants *[]string |
| } |
| |
| func (s *KeysByType) Encode(encoder *bindings.Encoder) error { |
| encoder.StartStruct(56, 0) |
| if s.Interfaces == nil { |
| encoder.WriteNullPointer() |
| } else { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len((*s.Interfaces))), 64) |
| for _, elem0 := range *s.Interfaces { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := encoder.WriteString(elem0); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| } |
| if s.Structs == nil { |
| encoder.WriteNullPointer() |
| } else { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len((*s.Structs))), 64) |
| for _, elem0 := range *s.Structs { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := encoder.WriteString(elem0); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| } |
| if s.Unions == nil { |
| encoder.WriteNullPointer() |
| } else { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len((*s.Unions))), 64) |
| for _, elem0 := range *s.Unions { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := encoder.WriteString(elem0); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| } |
| if s.TopLevelEnums == nil { |
| encoder.WriteNullPointer() |
| } else { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len((*s.TopLevelEnums))), 64) |
| for _, elem0 := range *s.TopLevelEnums { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := encoder.WriteString(elem0); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| } |
| if s.EmbeddedEnums == nil { |
| encoder.WriteNullPointer() |
| } else { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len((*s.EmbeddedEnums))), 64) |
| for _, elem0 := range *s.EmbeddedEnums { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := encoder.WriteString(elem0); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| } |
| if s.TopLevelConstants == nil { |
| encoder.WriteNullPointer() |
| } else { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len((*s.TopLevelConstants))), 64) |
| for _, elem0 := range *s.TopLevelConstants { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := encoder.WriteString(elem0); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| } |
| if s.EmbeddedConstants == nil { |
| encoder.WriteNullPointer() |
| } else { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len((*s.EmbeddedConstants))), 64) |
| for _, elem0 := range *s.EmbeddedConstants { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := encoder.WriteString(elem0); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| var keysByType_Versions []bindings.DataHeader = []bindings.DataHeader{ |
| bindings.DataHeader{64, 0}, |
| } |
| |
| func (s *KeysByType) Decode(decoder *bindings.Decoder) error { |
| header, err := decoder.StartStruct() |
| if err != nil { |
| return err |
| } |
| index := sort.Search(len(keysByType_Versions), func(i int) bool { |
| return keysByType_Versions[i].ElementsOrVersion >= header.ElementsOrVersion |
| }) |
| if index < len(keysByType_Versions) { |
| if keysByType_Versions[index].ElementsOrVersion > header.ElementsOrVersion { |
| index-- |
| } |
| expectedSize := keysByType_Versions[index].Size |
| if expectedSize != header.Size { |
| return &bindings.ValidationError{bindings.UnexpectedStructHeader, |
| fmt.Sprintf("invalid struct header size: should be %d, but was %d", expectedSize, header.Size), |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| s.Interfaces = nil |
| } else { |
| s.Interfaces = new([]string) |
| len0, err := decoder.StartArray(64) |
| if err != nil { |
| return err |
| } |
| (*s.Interfaces) = make([]string, len0) |
| for i0 := uint32(0); i0 < len0; i0++ { |
| pointer1, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer1 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| value1, err := decoder.ReadString() |
| if err != nil { |
| return err |
| } |
| (*s.Interfaces)[i0] = value1 |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| s.Structs = nil |
| } else { |
| s.Structs = new([]string) |
| len0, err := decoder.StartArray(64) |
| if err != nil { |
| return err |
| } |
| (*s.Structs) = make([]string, len0) |
| for i0 := uint32(0); i0 < len0; i0++ { |
| pointer1, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer1 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| value1, err := decoder.ReadString() |
| if err != nil { |
| return err |
| } |
| (*s.Structs)[i0] = value1 |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| s.Unions = nil |
| } else { |
| s.Unions = new([]string) |
| len0, err := decoder.StartArray(64) |
| if err != nil { |
| return err |
| } |
| (*s.Unions) = make([]string, len0) |
| for i0 := uint32(0); i0 < len0; i0++ { |
| pointer1, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer1 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| value1, err := decoder.ReadString() |
| if err != nil { |
| return err |
| } |
| (*s.Unions)[i0] = value1 |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| s.TopLevelEnums = nil |
| } else { |
| s.TopLevelEnums = new([]string) |
| len0, err := decoder.StartArray(64) |
| if err != nil { |
| return err |
| } |
| (*s.TopLevelEnums) = make([]string, len0) |
| for i0 := uint32(0); i0 < len0; i0++ { |
| pointer1, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer1 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| value1, err := decoder.ReadString() |
| if err != nil { |
| return err |
| } |
| (*s.TopLevelEnums)[i0] = value1 |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| s.EmbeddedEnums = nil |
| } else { |
| s.EmbeddedEnums = new([]string) |
| len0, err := decoder.StartArray(64) |
| if err != nil { |
| return err |
| } |
| (*s.EmbeddedEnums) = make([]string, len0) |
| for i0 := uint32(0); i0 < len0; i0++ { |
| pointer1, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer1 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| value1, err := decoder.ReadString() |
| if err != nil { |
| return err |
| } |
| (*s.EmbeddedEnums)[i0] = value1 |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| s.TopLevelConstants = nil |
| } else { |
| s.TopLevelConstants = new([]string) |
| len0, err := decoder.StartArray(64) |
| if err != nil { |
| return err |
| } |
| (*s.TopLevelConstants) = make([]string, len0) |
| for i0 := uint32(0); i0 < len0; i0++ { |
| pointer1, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer1 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| value1, err := decoder.ReadString() |
| if err != nil { |
| return err |
| } |
| (*s.TopLevelConstants)[i0] = value1 |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| s.EmbeddedConstants = nil |
| } else { |
| s.EmbeddedConstants = new([]string) |
| len0, err := decoder.StartArray(64) |
| if err != nil { |
| return err |
| } |
| (*s.EmbeddedConstants) = make([]string, len0) |
| for i0 := uint32(0); i0 < len0; i0++ { |
| pointer1, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer1 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| value1, err := decoder.ReadString() |
| if err != nil { |
| return err |
| } |
| (*s.EmbeddedConstants)[i0] = value1 |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |