本文整理汇总了Golang中github.com/tinylib/msgp/msgp.Reader.ReadArrayHeader方法的典型用法代码示例。如果您正苦于以下问题:Golang Reader.ReadArrayHeader方法的具体用法?Golang Reader.ReadArrayHeader怎么用?Golang Reader.ReadArrayHeader使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/tinylib/msgp/msgp.Reader
的用法示例。
在下文中一共展示了Reader.ReadArrayHeader方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: DecodeMsg
// DecodeMsg implements msgp.Decodable
func (z *KVs) DecodeMsg(dc *msgp.Reader) (err error) {
var xsz uint32
xsz, err = dc.ReadArrayHeader()
if err != nil {
return
}
if cap((*z)) >= int(xsz) {
(*z) = (*z)[:xsz]
} else {
(*z) = make(KVs, xsz)
}
for cmr := range *z {
var asz uint32
asz, err = dc.ReadArrayHeader()
if err != nil {
return
}
if asz != 2 {
err = msgp.ArrayError{Wanted: 2, Got: asz}
return
}
for ajw := range (*z)[cmr] {
{
var tmp []byte
tmp, err = dc.ReadBytes([]byte((*z)[cmr][ajw]))
(*z)[cmr][ajw] = Binary(tmp)
}
if err != nil {
return
}
}
}
return
}
示例2: DecodeMsg
// DecodeMsg implements msgp.Decodable
func (z *MetricDataArray) DecodeMsg(dc *msgp.Reader) (err error) {
var xsz uint32
xsz, err = dc.ReadArrayHeader()
if err != nil {
return
}
if cap((*z)) >= int(xsz) {
(*z) = (*z)[:xsz]
} else {
(*z) = make(MetricDataArray, xsz)
}
for bai := range *z {
if dc.IsNil() {
err = dc.ReadNil()
if err != nil {
return
}
(*z)[bai] = nil
} else {
if (*z)[bai] == nil {
(*z)[bai] = new(MetricData)
}
err = (*z)[bai].DecodeMsg(dc)
if err != nil {
return
}
}
}
return
}
示例3: DecodeMsg
// DecodeMsg implements msgp.Decodable
func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) {
var ssz uint32
ssz, err = dc.ReadArrayHeader()
if err != nil {
return
}
if ssz != 4 {
err = msgp.ArrayError{Wanted: 4, Got: ssz}
return
}
z.Tag, err = dc.ReadString()
if err != nil {
return
}
z.Time, err = dc.ReadInt64()
if err != nil {
return
}
z.Record, err = dc.ReadIntf()
if err != nil {
return
}
z.Option, err = dc.ReadIntf()
if err != nil {
return
}
return
}
示例4: DecodeMsg
func (r *Request) DecodeMsg(mr *msgp.Reader) error {
var bm msgp.Decodable
if r.Body != nil {
var ok bool
bm, ok = r.Body.(msgp.Decodable)
if !ok {
return ErrNotDecodable
}
}
if size, err := mr.ReadArrayHeader(); err != nil {
return err
} else if size != RequestPackSize {
return ErrBadPackSize
}
if typ, err := mr.ReadInt(); err != nil {
return err
} else if typ != RequestType {
return ErrBadMessageType
}
id, err := mr.ReadUint32()
if err != nil {
return err
}
r.ID = id
method, err := mr.ReadString()
if err != nil {
return err
}
r.Method = method
// The request body is packed in an array.
l, err := mr.ReadArrayHeader()
if err != nil {
return err
}
if l > 1 {
return ErrUnexpectedParams
} else if l == 0 {
return nil
}
r.hasBody = true
// Skip decoding the body if no value is present to decode into.
// The caller is expected to decode the body or skip it.
if bm != nil {
return decodeBody(mr, bm)
}
return nil
}
示例5: DecodeMsg
// DecodeMsg implements msgp.Decodable
func (z *Snap) DecodeMsg(dc *msgp.Reader) (err error) {
var field []byte
_ = field
var isz uint32
isz, err = dc.ReadMapHeader()
if err != nil {
return
}
for isz > 0 {
isz--
field, err = dc.ReadMapKeyPtr()
if err != nil {
return
}
switch msgp.UnsafeString(field) {
case "LowestTrackableValue":
z.LowestTrackableValue, err = dc.ReadInt64()
if err != nil {
return
}
case "HighestTrackableValue":
z.HighestTrackableValue, err = dc.ReadInt64()
if err != nil {
return
}
case "SignificantFigures":
z.SignificantFigures, err = dc.ReadInt64()
if err != nil {
return
}
case "Counts":
var xsz uint32
xsz, err = dc.ReadArrayHeader()
if err != nil {
return
}
if cap(z.Counts) >= int(xsz) {
z.Counts = z.Counts[:xsz]
} else {
z.Counts = make([]int64, xsz)
}
for xvk := range z.Counts {
z.Counts[xvk], err = dc.ReadInt64()
if err != nil {
return
}
}
default:
err = dc.Skip()
if err != nil {
return
}
}
}
return
}
示例6: checkSize
func checkSize(num uint32, r *msgp.Reader) error {
size, err := r.ReadArrayHeader()
if err != nil {
return err
}
if size != num {
return ErrInvalidArgsNum
}
return nil
}
示例7: DecodeMsg
// DecodeMsg implements msgp.Decodable
func (z *InterfaceT) DecodeMsg(dc *msgp.Reader) (err error) {
var field []byte
_ = field
var zlqf uint32
zlqf, err = dc.ReadMapHeader()
if err != nil {
return
}
for zlqf > 0 {
zlqf--
field, err = dc.ReadMapKeyPtr()
if err != nil {
return
}
switch msgp.UnsafeString(field) {
case "Methods":
var zdaf uint32
zdaf, err = dc.ReadArrayHeader()
if err != nil {
return
}
if cap(z.Methods) >= int(zdaf) {
z.Methods = (z.Methods)[:zdaf]
} else {
z.Methods = make([]MethodT, zdaf)
}
for zxhx := range z.Methods {
err = z.Methods[zxhx].DecodeMsg(dc)
if err != nil {
return
}
}
case "Deprecated":
z.Deprecated, err = dc.ReadBool()
if err != nil {
return
}
case "Comment":
z.Comment, err = dc.ReadString()
if err != nil {
return
}
default:
err = dc.Skip()
if err != nil {
return
}
}
}
return
}
示例8: DecodeMsg
// DecodeMsg implements msgp.Decodable
func (z *bitmapContainer) DecodeMsg(dc *msgp.Reader) (err error) {
var field []byte
_ = field
var zbzg uint32
zbzg, err = dc.ReadMapHeader()
if err != nil {
return
}
for zbzg > 0 {
zbzg--
field, err = dc.ReadMapKeyPtr()
if err != nil {
return
}
switch msgp.UnsafeString(field) {
case "cardinality":
z.cardinality, err = dc.ReadInt()
if err != nil {
return
}
case "bitmap":
var zbai uint32
zbai, err = dc.ReadArrayHeader()
if err != nil {
return
}
if cap(z.bitmap) >= int(zbai) {
z.bitmap = (z.bitmap)[:zbai]
} else {
z.bitmap = make([]uint64, zbai)
}
for zxvk := range z.bitmap {
z.bitmap[zxvk], err = dc.ReadUint64()
if err != nil {
return
}
}
default:
err = dc.Skip()
if err != nil {
return
}
}
}
return
}
示例9: DecodeMsg
// DecodeMsg implements msgp.Decodable
func (z *uint32Slice) DecodeMsg(dc *msgp.Reader) (err error) {
var zjpj uint32
zjpj, err = dc.ReadArrayHeader()
if err != nil {
return
}
if cap((*z)) >= int(zjpj) {
(*z) = (*z)[:zjpj]
} else {
(*z) = make(uint32Slice, zjpj)
}
for zywj := range *z {
(*z)[zywj], err = dc.ReadUint32()
if err != nil {
return
}
}
return
}
示例10: next
func (h *ConnectionHandler) next(r *msgp.Reader) (hasHeaders bool, channel uint64, c uint64, err error) {
var sz uint32
sz, err = r.ReadArrayHeader()
if err != nil {
return
}
hasHeaders = sz == 4
channel, err = r.ReadUint64()
if err != nil {
return
}
c, err = r.ReadUint64()
if err != nil {
return
}
return
}
示例11: DecodeMsg
// DecodeMsg implements msgp.Decodable
func (z *arrayContainer) DecodeMsg(dc *msgp.Reader) (err error) {
var field []byte
_ = field
var zbzg uint32
zbzg, err = dc.ReadMapHeader()
if err != nil {
return
}
for zbzg > 0 {
zbzg--
field, err = dc.ReadMapKeyPtr()
if err != nil {
return
}
switch msgp.UnsafeString(field) {
case "content":
var zbai uint32
zbai, err = dc.ReadArrayHeader()
if err != nil {
return
}
if cap(z.content) >= int(zbai) {
z.content = (z.content)[:zbai]
} else {
z.content = make([]uint16, zbai)
}
for zxvk := range z.content {
z.content[zxvk], err = dc.ReadUint16()
if err != nil {
return
}
}
default:
err = dc.Skip()
if err != nil {
return
}
}
}
return
}
示例12: DecodeMsg
// DecodeMsg implements msgp.Decodable
func (z *DocumentList) DecodeMsg(dc *msgp.Reader) (err error) {
var xsz uint32
xsz, err = dc.ReadArrayHeader()
if err != nil {
return
}
if cap((*z)) >= int(xsz) {
(*z) = (*z)[:xsz]
} else {
(*z) = make(DocumentList, xsz)
}
for bzg := range *z {
{
var tmp uint
tmp, err = dc.ReadUint()
(*z)[bzg] = DocumentID(tmp)
}
if err != nil {
return
}
}
return
}
示例13: DecodeMsg
// DecodeMsg implements msgp.Decodable
func (z *Group) DecodeMsg(dc *msgp.Reader) (err error) {
var field []byte
_ = field
var isz uint32
isz, err = dc.ReadMapHeader()
if err != nil {
return
}
for isz > 0 {
isz--
field, err = dc.ReadMapKeyPtr()
if err != nil {
return
}
switch msgp.UnsafeString(field) {
case "Name":
z.Name, err = dc.ReadString()
if err != nil {
return
}
case "Members":
var xsz uint32
xsz, err = dc.ReadArrayHeader()
if err != nil {
return
}
if cap(z.Members) >= int(xsz) {
z.Members = z.Members[:xsz]
} else {
z.Members = make([]Person, xsz)
}
for xvk := range z.Members {
var isz uint32
isz, err = dc.ReadMapHeader()
if err != nil {
return
}
for isz > 0 {
isz--
field, err = dc.ReadMapKeyPtr()
if err != nil {
return
}
switch msgp.UnsafeString(field) {
case "Name":
z.Members[xvk].Name, err = dc.ReadString()
if err != nil {
return
}
case "Age":
z.Members[xvk].Age, err = dc.ReadUint8()
if err != nil {
return
}
case "Height":
z.Members[xvk].Height, err = dc.ReadFloat64()
if err != nil {
return
}
default:
err = dc.Skip()
if err != nil {
return
}
}
}
}
default:
err = dc.Skip()
if err != nil {
return
}
}
}
return
}
示例14: DecodeMsg
// DecodeMsg implements msgp.Decodable
func (z *ServerResponse) DecodeMsg(dc *msgp.Reader) (err error) {
{
var ssz uint32
ssz, err = dc.ReadArrayHeader()
if err != nil {
return
}
if ssz != 3 {
err = msgp.ArrayError{Wanted: 3, Got: ssz}
return
}
}
if dc.IsNil() {
err = dc.ReadNil()
if err != nil {
return
}
z.Header = nil
} else {
if z.Header == nil {
z.Header = new(EventHeader)
}
var field []byte
_ = field
var isz uint32
isz, err = dc.ReadMapHeader()
if err != nil {
return
}
for isz > 0 {
isz--
field, err = dc.ReadMapKeyPtr()
if err != nil {
return
}
switch msgp.UnsafeString(field) {
case "message_id":
z.Header.Id, err = dc.ReadString()
if err != nil {
return
}
case "v":
z.Header.Version, err = dc.ReadInt()
if err != nil {
return
}
case "response_to":
z.Header.ResponseTo, err = dc.ReadString()
if err != nil {
return
}
default:
err = dc.Skip()
if err != nil {
return
}
}
}
}
z.Name, err = dc.ReadString()
if err != nil {
return
}
var xsz uint32
xsz, err = dc.ReadArrayHeader()
if err != nil {
return
}
if cap(z.Params) >= int(xsz) {
z.Params = z.Params[:xsz]
} else {
z.Params = make([]interface{}, xsz)
}
for bzg := range z.Params {
z.Params[bzg], err = dc.ReadIntf()
if err != nil {
return
}
}
return
}
示例15: DecodeMsg
// DecodeMsg implements msgp.Decodable
func (z *Event) DecodeMsg(dc *msgp.Reader) (err error) {
var field []byte
_ = field
var isz uint32
isz, err = dc.ReadMapHeader()
if err != nil {
return
}
for isz > 0 {
isz--
field, err = dc.ReadMapKeyPtr()
if err != nil {
return
}
switch msgp.UnsafeString(field) {
case "id":
z.Id, err = dc.ReadInt()
if err != nil {
return
}
case "user":
var isz uint32
isz, err = dc.ReadMapHeader()
if err != nil {
return
}
for isz > 0 {
isz--
field, err = dc.ReadMapKeyPtr()
if err != nil {
return
}
switch msgp.UnsafeString(field) {
case "first":
z.User.First, err = dc.ReadString()
if err != nil {
return
}
case "last":
z.User.Last, err = dc.ReadString()
if err != nil {
return
}
default:
err = dc.Skip()
if err != nil {
return
}
}
}
case "flight":
z.Flight, err = dc.ReadString()
if err != nil {
return
}
case "pilot":
var xsz uint32
xsz, err = dc.ReadArrayHeader()
if err != nil {
return
}
if cap(z.Pilot) >= int(xsz) {
z.Pilot = z.Pilot[:xsz]
} else {
z.Pilot = make([]string, xsz)
}
for xvk := range z.Pilot {
z.Pilot[xvk], err = dc.ReadString()
if err != nil {
return
}
}
default:
err = dc.Skip()
if err != nil {
return
}
}
}
return
}