// UnmarshalBson bson-decodes into StreamEvent. func (streamEvent *StreamEvent) UnmarshalBson(buf *bytes.Buffer, kind byte) { switch kind { case bson.EOO, bson.Object: // valid case bson.Null: return default: panic(bson.NewBsonError("unexpected kind %v for StreamEvent", kind)) } bson.Next(buf, 4) for kind := bson.NextByte(buf); kind != bson.EOO; kind = bson.NextByte(buf) { switch bson.ReadCString(buf) { case "Category": streamEvent.Category = bson.DecodeString(buf, kind) case "TableName": streamEvent.TableName = bson.DecodeString(buf, kind) case "PrimaryKeyFields": // []mproto.Field if kind != bson.Null { if kind != bson.Array { panic(bson.NewBsonError("unexpected kind %v for streamEvent.PrimaryKeyFields", kind)) } bson.Next(buf, 4) streamEvent.PrimaryKeyFields = make([]mproto.Field, 0, 8) for kind := bson.NextByte(buf); kind != bson.EOO; kind = bson.NextByte(buf) { bson.SkipIndex(buf) var _v1 mproto.Field _v1.UnmarshalBson(buf, kind) streamEvent.PrimaryKeyFields = append(streamEvent.PrimaryKeyFields, _v1) } } case "PrimaryKeyValues": // [][]sqltypes.Value if kind != bson.Null { if kind != bson.Array { panic(bson.NewBsonError("unexpected kind %v for streamEvent.PrimaryKeyValues", kind)) } bson.Next(buf, 4) streamEvent.PrimaryKeyValues = make([][]sqltypes.Value, 0, 8) for kind := bson.NextByte(buf); kind != bson.EOO; kind = bson.NextByte(buf) { bson.SkipIndex(buf) var _v2 []sqltypes.Value // []sqltypes.Value if kind != bson.Null { if kind != bson.Array { panic(bson.NewBsonError("unexpected kind %v for _v2", kind)) } bson.Next(buf, 4) _v2 = make([]sqltypes.Value, 0, 8) for kind := bson.NextByte(buf); kind != bson.EOO; kind = bson.NextByte(buf) { bson.SkipIndex(buf) var _v3 sqltypes.Value _v3.UnmarshalBson(buf, kind) _v2 = append(_v2, _v3) } } streamEvent.PrimaryKeyValues = append(streamEvent.PrimaryKeyValues, _v2) } } case "Sql": streamEvent.Sql = bson.DecodeString(buf, kind) case "Timestamp": streamEvent.Timestamp = bson.DecodeInt64(buf, kind) case "TransactionID": streamEvent.TransactionID = bson.DecodeString(buf, kind) default: bson.Skip(buf, kind) } } }
// UnmarshalBson bson-decodes into QueryResult. func (queryResult *QueryResult) UnmarshalBson(buf *bytes.Buffer, kind byte) { switch kind { case bson.EOO, bson.Object: // valid case bson.Null: return default: panic(bson.NewBsonError("unexpected kind %v for QueryResult", kind)) } bson.Next(buf, 4) for kind := bson.NextByte(buf); kind != bson.EOO; kind = bson.NextByte(buf) { switch bson.ReadCString(buf) { case "Fields": // []mproto.Field if kind != bson.Null { if kind != bson.Array { panic(bson.NewBsonError("unexpected kind %v for queryResult.Fields", kind)) } bson.Next(buf, 4) queryResult.Fields = make([]mproto.Field, 0, 8) for kind := bson.NextByte(buf); kind != bson.EOO; kind = bson.NextByte(buf) { bson.SkipIndex(buf) var _v1 mproto.Field _v1.UnmarshalBson(buf, kind) queryResult.Fields = append(queryResult.Fields, _v1) } } case "RowsAffected": queryResult.RowsAffected = bson.DecodeUint64(buf, kind) case "InsertId": queryResult.InsertId = bson.DecodeUint64(buf, kind) case "Rows": // [][]sqltypes.Value if kind != bson.Null { if kind != bson.Array { panic(bson.NewBsonError("unexpected kind %v for queryResult.Rows", kind)) } bson.Next(buf, 4) queryResult.Rows = make([][]sqltypes.Value, 0, 8) for kind := bson.NextByte(buf); kind != bson.EOO; kind = bson.NextByte(buf) { bson.SkipIndex(buf) var _v2 []sqltypes.Value // []sqltypes.Value if kind != bson.Null { if kind != bson.Array { panic(bson.NewBsonError("unexpected kind %v for _v2", kind)) } bson.Next(buf, 4) _v2 = make([]sqltypes.Value, 0, 8) for kind := bson.NextByte(buf); kind != bson.EOO; kind = bson.NextByte(buf) { bson.SkipIndex(buf) var _v3 sqltypes.Value _v3.UnmarshalBson(buf, kind) _v2 = append(_v2, _v3) } } queryResult.Rows = append(queryResult.Rows, _v2) } } case "Session": // *Session if kind != bson.Null { queryResult.Session = new(Session) (*queryResult.Session).UnmarshalBson(buf, kind) } case "Error": queryResult.Error = bson.DecodeString(buf, kind) default: bson.Skip(buf, kind) } } }