本文整理匯總了Golang中mojo/public/go/bindings.Decoder類的典型用法代碼示例。如果您正苦於以下問題:Golang Decoder類的具體用法?Golang Decoder怎麽用?Golang Decoder使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了Decoder類的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: Decode
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
}
//.........這裏部分代碼省略.........