github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/kv/kvnemesis/operations.pb.go (about)

     1  // Code generated by protoc-gen-gogo. DO NOT EDIT.
     2  // source: kv/kvnemesis/operations.proto
     3  
     4  package kvnemesis
     5  
     6  import proto "github.com/gogo/protobuf/proto"
     7  import fmt "fmt"
     8  import math "math"
     9  import errorspb "github.com/cockroachdb/errors/errorspb"
    10  import roachpb "github.com/cockroachdb/cockroach/pkg/roachpb"
    11  import hlc "github.com/cockroachdb/cockroach/pkg/util/hlc"
    12  
    13  import io "io"
    14  
    15  // Reference imports to suppress errors if they are not otherwise used.
    16  var _ = proto.Marshal
    17  var _ = fmt.Errorf
    18  var _ = math.Inf
    19  
    20  // This is a compile-time assertion to ensure that this generated file
    21  // is compatible with the proto package it is being compiled against.
    22  // A compilation error at this line likely means your copy of the
    23  // proto package needs to be updated.
    24  const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
    25  
    26  type ClosureTxnType int32
    27  
    28  const (
    29  	ClosureTxnType_Commit   ClosureTxnType = 0
    30  	ClosureTxnType_Rollback ClosureTxnType = 1
    31  )
    32  
    33  var ClosureTxnType_name = map[int32]string{
    34  	0: "Commit",
    35  	1: "Rollback",
    36  }
    37  var ClosureTxnType_value = map[string]int32{
    38  	"Commit":   0,
    39  	"Rollback": 1,
    40  }
    41  
    42  func (x ClosureTxnType) String() string {
    43  	return proto.EnumName(ClosureTxnType_name, int32(x))
    44  }
    45  func (ClosureTxnType) EnumDescriptor() ([]byte, []int) {
    46  	return fileDescriptor_operations_a296c8d9789a3e0e, []int{0}
    47  }
    48  
    49  type ResultType int32
    50  
    51  const (
    52  	ResultType_Unknown ResultType = 0
    53  	ResultType_NoError ResultType = 1
    54  	ResultType_Error   ResultType = 2
    55  	ResultType_Value   ResultType = 3
    56  )
    57  
    58  var ResultType_name = map[int32]string{
    59  	0: "Unknown",
    60  	1: "NoError",
    61  	2: "Error",
    62  	3: "Value",
    63  }
    64  var ResultType_value = map[string]int32{
    65  	"Unknown": 0,
    66  	"NoError": 1,
    67  	"Error":   2,
    68  	"Value":   3,
    69  }
    70  
    71  func (x ResultType) String() string {
    72  	return proto.EnumName(ResultType_name, int32(x))
    73  }
    74  func (ResultType) EnumDescriptor() ([]byte, []int) {
    75  	return fileDescriptor_operations_a296c8d9789a3e0e, []int{1}
    76  }
    77  
    78  type BatchOperation struct {
    79  	Ops    []Operation `protobuf:"bytes,1,rep,name=ops,proto3" json:"ops"`
    80  	Result Result      `protobuf:"bytes,2,opt,name=result,proto3" json:"result"`
    81  }
    82  
    83  func (m *BatchOperation) Reset()         { *m = BatchOperation{} }
    84  func (m *BatchOperation) String() string { return proto.CompactTextString(m) }
    85  func (*BatchOperation) ProtoMessage()    {}
    86  func (*BatchOperation) Descriptor() ([]byte, []int) {
    87  	return fileDescriptor_operations_a296c8d9789a3e0e, []int{0}
    88  }
    89  func (m *BatchOperation) XXX_Unmarshal(b []byte) error {
    90  	return m.Unmarshal(b)
    91  }
    92  func (m *BatchOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
    93  	b = b[:cap(b)]
    94  	n, err := m.MarshalTo(b)
    95  	if err != nil {
    96  		return nil, err
    97  	}
    98  	return b[:n], nil
    99  }
   100  func (dst *BatchOperation) XXX_Merge(src proto.Message) {
   101  	xxx_messageInfo_BatchOperation.Merge(dst, src)
   102  }
   103  func (m *BatchOperation) XXX_Size() int {
   104  	return m.Size()
   105  }
   106  func (m *BatchOperation) XXX_DiscardUnknown() {
   107  	xxx_messageInfo_BatchOperation.DiscardUnknown(m)
   108  }
   109  
   110  var xxx_messageInfo_BatchOperation proto.InternalMessageInfo
   111  
   112  type ClosureTxnOperation struct {
   113  	TxnID         string               `protobuf:"bytes,1,opt,name=txn_id,json=txnId,proto3" json:"txn_id,omitempty"`
   114  	Ops           []Operation          `protobuf:"bytes,2,rep,name=ops,proto3" json:"ops"`
   115  	CommitInBatch *BatchOperation      `protobuf:"bytes,3,opt,name=commit_in_batch,json=commitInBatch,proto3" json:"commit_in_batch,omitempty"`
   116  	Type          ClosureTxnType       `protobuf:"varint,4,opt,name=type,proto3,enum=cockroach.kv.kvnemesis.ClosureTxnType" json:"type,omitempty"`
   117  	Result        Result               `protobuf:"bytes,5,opt,name=result,proto3" json:"result"`
   118  	Txn           *roachpb.Transaction `protobuf:"bytes,6,opt,name=txn,proto3" json:"txn,omitempty"`
   119  }
   120  
   121  func (m *ClosureTxnOperation) Reset()         { *m = ClosureTxnOperation{} }
   122  func (m *ClosureTxnOperation) String() string { return proto.CompactTextString(m) }
   123  func (*ClosureTxnOperation) ProtoMessage()    {}
   124  func (*ClosureTxnOperation) Descriptor() ([]byte, []int) {
   125  	return fileDescriptor_operations_a296c8d9789a3e0e, []int{1}
   126  }
   127  func (m *ClosureTxnOperation) XXX_Unmarshal(b []byte) error {
   128  	return m.Unmarshal(b)
   129  }
   130  func (m *ClosureTxnOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   131  	b = b[:cap(b)]
   132  	n, err := m.MarshalTo(b)
   133  	if err != nil {
   134  		return nil, err
   135  	}
   136  	return b[:n], nil
   137  }
   138  func (dst *ClosureTxnOperation) XXX_Merge(src proto.Message) {
   139  	xxx_messageInfo_ClosureTxnOperation.Merge(dst, src)
   140  }
   141  func (m *ClosureTxnOperation) XXX_Size() int {
   142  	return m.Size()
   143  }
   144  func (m *ClosureTxnOperation) XXX_DiscardUnknown() {
   145  	xxx_messageInfo_ClosureTxnOperation.DiscardUnknown(m)
   146  }
   147  
   148  var xxx_messageInfo_ClosureTxnOperation proto.InternalMessageInfo
   149  
   150  type GetOperation struct {
   151  	Key    []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
   152  	Result Result `protobuf:"bytes,2,opt,name=result,proto3" json:"result"`
   153  }
   154  
   155  func (m *GetOperation) Reset()         { *m = GetOperation{} }
   156  func (m *GetOperation) String() string { return proto.CompactTextString(m) }
   157  func (*GetOperation) ProtoMessage()    {}
   158  func (*GetOperation) Descriptor() ([]byte, []int) {
   159  	return fileDescriptor_operations_a296c8d9789a3e0e, []int{2}
   160  }
   161  func (m *GetOperation) XXX_Unmarshal(b []byte) error {
   162  	return m.Unmarshal(b)
   163  }
   164  func (m *GetOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   165  	b = b[:cap(b)]
   166  	n, err := m.MarshalTo(b)
   167  	if err != nil {
   168  		return nil, err
   169  	}
   170  	return b[:n], nil
   171  }
   172  func (dst *GetOperation) XXX_Merge(src proto.Message) {
   173  	xxx_messageInfo_GetOperation.Merge(dst, src)
   174  }
   175  func (m *GetOperation) XXX_Size() int {
   176  	return m.Size()
   177  }
   178  func (m *GetOperation) XXX_DiscardUnknown() {
   179  	xxx_messageInfo_GetOperation.DiscardUnknown(m)
   180  }
   181  
   182  var xxx_messageInfo_GetOperation proto.InternalMessageInfo
   183  
   184  type PutOperation struct {
   185  	Key    []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
   186  	Value  []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
   187  	Result Result `protobuf:"bytes,3,opt,name=result,proto3" json:"result"`
   188  }
   189  
   190  func (m *PutOperation) Reset()         { *m = PutOperation{} }
   191  func (m *PutOperation) String() string { return proto.CompactTextString(m) }
   192  func (*PutOperation) ProtoMessage()    {}
   193  func (*PutOperation) Descriptor() ([]byte, []int) {
   194  	return fileDescriptor_operations_a296c8d9789a3e0e, []int{3}
   195  }
   196  func (m *PutOperation) XXX_Unmarshal(b []byte) error {
   197  	return m.Unmarshal(b)
   198  }
   199  func (m *PutOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   200  	b = b[:cap(b)]
   201  	n, err := m.MarshalTo(b)
   202  	if err != nil {
   203  		return nil, err
   204  	}
   205  	return b[:n], nil
   206  }
   207  func (dst *PutOperation) XXX_Merge(src proto.Message) {
   208  	xxx_messageInfo_PutOperation.Merge(dst, src)
   209  }
   210  func (m *PutOperation) XXX_Size() int {
   211  	return m.Size()
   212  }
   213  func (m *PutOperation) XXX_DiscardUnknown() {
   214  	xxx_messageInfo_PutOperation.DiscardUnknown(m)
   215  }
   216  
   217  var xxx_messageInfo_PutOperation proto.InternalMessageInfo
   218  
   219  type SplitOperation struct {
   220  	Key    []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
   221  	Result Result `protobuf:"bytes,2,opt,name=result,proto3" json:"result"`
   222  }
   223  
   224  func (m *SplitOperation) Reset()         { *m = SplitOperation{} }
   225  func (m *SplitOperation) String() string { return proto.CompactTextString(m) }
   226  func (*SplitOperation) ProtoMessage()    {}
   227  func (*SplitOperation) Descriptor() ([]byte, []int) {
   228  	return fileDescriptor_operations_a296c8d9789a3e0e, []int{4}
   229  }
   230  func (m *SplitOperation) XXX_Unmarshal(b []byte) error {
   231  	return m.Unmarshal(b)
   232  }
   233  func (m *SplitOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   234  	b = b[:cap(b)]
   235  	n, err := m.MarshalTo(b)
   236  	if err != nil {
   237  		return nil, err
   238  	}
   239  	return b[:n], nil
   240  }
   241  func (dst *SplitOperation) XXX_Merge(src proto.Message) {
   242  	xxx_messageInfo_SplitOperation.Merge(dst, src)
   243  }
   244  func (m *SplitOperation) XXX_Size() int {
   245  	return m.Size()
   246  }
   247  func (m *SplitOperation) XXX_DiscardUnknown() {
   248  	xxx_messageInfo_SplitOperation.DiscardUnknown(m)
   249  }
   250  
   251  var xxx_messageInfo_SplitOperation proto.InternalMessageInfo
   252  
   253  type MergeOperation struct {
   254  	Key    []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
   255  	Result Result `protobuf:"bytes,2,opt,name=result,proto3" json:"result"`
   256  }
   257  
   258  func (m *MergeOperation) Reset()         { *m = MergeOperation{} }
   259  func (m *MergeOperation) String() string { return proto.CompactTextString(m) }
   260  func (*MergeOperation) ProtoMessage()    {}
   261  func (*MergeOperation) Descriptor() ([]byte, []int) {
   262  	return fileDescriptor_operations_a296c8d9789a3e0e, []int{5}
   263  }
   264  func (m *MergeOperation) XXX_Unmarshal(b []byte) error {
   265  	return m.Unmarshal(b)
   266  }
   267  func (m *MergeOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   268  	b = b[:cap(b)]
   269  	n, err := m.MarshalTo(b)
   270  	if err != nil {
   271  		return nil, err
   272  	}
   273  	return b[:n], nil
   274  }
   275  func (dst *MergeOperation) XXX_Merge(src proto.Message) {
   276  	xxx_messageInfo_MergeOperation.Merge(dst, src)
   277  }
   278  func (m *MergeOperation) XXX_Size() int {
   279  	return m.Size()
   280  }
   281  func (m *MergeOperation) XXX_DiscardUnknown() {
   282  	xxx_messageInfo_MergeOperation.DiscardUnknown(m)
   283  }
   284  
   285  var xxx_messageInfo_MergeOperation proto.InternalMessageInfo
   286  
   287  type ChangeReplicasOperation struct {
   288  	Key     []byte                      `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
   289  	Changes []roachpb.ReplicationChange `protobuf:"bytes,2,rep,name=changes,proto3" json:"changes"`
   290  	Result  Result                      `protobuf:"bytes,3,opt,name=result,proto3" json:"result"`
   291  }
   292  
   293  func (m *ChangeReplicasOperation) Reset()         { *m = ChangeReplicasOperation{} }
   294  func (m *ChangeReplicasOperation) String() string { return proto.CompactTextString(m) }
   295  func (*ChangeReplicasOperation) ProtoMessage()    {}
   296  func (*ChangeReplicasOperation) Descriptor() ([]byte, []int) {
   297  	return fileDescriptor_operations_a296c8d9789a3e0e, []int{6}
   298  }
   299  func (m *ChangeReplicasOperation) XXX_Unmarshal(b []byte) error {
   300  	return m.Unmarshal(b)
   301  }
   302  func (m *ChangeReplicasOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   303  	b = b[:cap(b)]
   304  	n, err := m.MarshalTo(b)
   305  	if err != nil {
   306  		return nil, err
   307  	}
   308  	return b[:n], nil
   309  }
   310  func (dst *ChangeReplicasOperation) XXX_Merge(src proto.Message) {
   311  	xxx_messageInfo_ChangeReplicasOperation.Merge(dst, src)
   312  }
   313  func (m *ChangeReplicasOperation) XXX_Size() int {
   314  	return m.Size()
   315  }
   316  func (m *ChangeReplicasOperation) XXX_DiscardUnknown() {
   317  	xxx_messageInfo_ChangeReplicasOperation.DiscardUnknown(m)
   318  }
   319  
   320  var xxx_messageInfo_ChangeReplicasOperation proto.InternalMessageInfo
   321  
   322  type Operation struct {
   323  	Batch *BatchOperation `protobuf:"bytes,1,opt,name=batch,proto3" json:"batch,omitempty"`
   324  	// TODO(dan): The original prototype of kvnemesis had separate operations for
   325  	// {Begin,Use,Commit,Rollback}Txn, which helped generate more interesting
   326  	// concurrency traffic. This had some issues with deadlock in the txn wait
   327  	// queue, but it seems like it should be possible to bring it back somehow.
   328  	ClosureTxn     *ClosureTxnOperation     `protobuf:"bytes,2,opt,name=closure_txn,json=closureTxn,proto3" json:"closure_txn,omitempty"`
   329  	Get            *GetOperation            `protobuf:"bytes,7,opt,name=get,proto3" json:"get,omitempty"`
   330  	Put            *PutOperation            `protobuf:"bytes,8,opt,name=put,proto3" json:"put,omitempty"`
   331  	Split          *SplitOperation          `protobuf:"bytes,9,opt,name=split,proto3" json:"split,omitempty"`
   332  	Merge          *MergeOperation          `protobuf:"bytes,10,opt,name=merge,proto3" json:"merge,omitempty"`
   333  	ChangeReplicas *ChangeReplicasOperation `protobuf:"bytes,11,opt,name=change_replicas,json=changeReplicas,proto3" json:"change_replicas,omitempty"`
   334  }
   335  
   336  func (m *Operation) Reset()      { *m = Operation{} }
   337  func (*Operation) ProtoMessage() {}
   338  func (*Operation) Descriptor() ([]byte, []int) {
   339  	return fileDescriptor_operations_a296c8d9789a3e0e, []int{7}
   340  }
   341  func (m *Operation) XXX_Unmarshal(b []byte) error {
   342  	return m.Unmarshal(b)
   343  }
   344  func (m *Operation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   345  	b = b[:cap(b)]
   346  	n, err := m.MarshalTo(b)
   347  	if err != nil {
   348  		return nil, err
   349  	}
   350  	return b[:n], nil
   351  }
   352  func (dst *Operation) XXX_Merge(src proto.Message) {
   353  	xxx_messageInfo_Operation.Merge(dst, src)
   354  }
   355  func (m *Operation) XXX_Size() int {
   356  	return m.Size()
   357  }
   358  func (m *Operation) XXX_DiscardUnknown() {
   359  	xxx_messageInfo_Operation.DiscardUnknown(m)
   360  }
   361  
   362  var xxx_messageInfo_Operation proto.InternalMessageInfo
   363  
   364  type Result struct {
   365  	Type ResultType             `protobuf:"varint,1,opt,name=type,proto3,enum=cockroach.kv.kvnemesis.ResultType" json:"type,omitempty"`
   366  	Err  *errorspb.EncodedError `protobuf:"bytes,2,opt,name=err,proto3" json:"err,omitempty"`
   367  	// Only set if Type is ResultType_Value. The RawBytes of a roachpb.Value.
   368  	Value []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
   369  }
   370  
   371  func (m *Result) Reset()         { *m = Result{} }
   372  func (m *Result) String() string { return proto.CompactTextString(m) }
   373  func (*Result) ProtoMessage()    {}
   374  func (*Result) Descriptor() ([]byte, []int) {
   375  	return fileDescriptor_operations_a296c8d9789a3e0e, []int{8}
   376  }
   377  func (m *Result) XXX_Unmarshal(b []byte) error {
   378  	return m.Unmarshal(b)
   379  }
   380  func (m *Result) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   381  	b = b[:cap(b)]
   382  	n, err := m.MarshalTo(b)
   383  	if err != nil {
   384  		return nil, err
   385  	}
   386  	return b[:n], nil
   387  }
   388  func (dst *Result) XXX_Merge(src proto.Message) {
   389  	xxx_messageInfo_Result.Merge(dst, src)
   390  }
   391  func (m *Result) XXX_Size() int {
   392  	return m.Size()
   393  }
   394  func (m *Result) XXX_DiscardUnknown() {
   395  	xxx_messageInfo_Result.DiscardUnknown(m)
   396  }
   397  
   398  var xxx_messageInfo_Result proto.InternalMessageInfo
   399  
   400  type Step struct {
   401  	Op     Operation     `protobuf:"bytes,1,opt,name=op,proto3" json:"op"`
   402  	Before hlc.Timestamp `protobuf:"bytes,2,opt,name=before,proto3" json:"before"`
   403  	After  hlc.Timestamp `protobuf:"bytes,3,opt,name=after,proto3" json:"after"`
   404  	DBID   int32         `protobuf:"varint,4,opt,name=db_id,json=dbId,proto3" json:"db_id,omitempty"`
   405  	// Trace will contain the recording of the Step's execution. Used to print it
   406  	// out when the test fails.
   407  	Trace string `protobuf:"bytes,5,opt,name=trace,proto3" json:"trace,omitempty"`
   408  }
   409  
   410  func (m *Step) Reset()      { *m = Step{} }
   411  func (*Step) ProtoMessage() {}
   412  func (*Step) Descriptor() ([]byte, []int) {
   413  	return fileDescriptor_operations_a296c8d9789a3e0e, []int{9}
   414  }
   415  func (m *Step) XXX_Unmarshal(b []byte) error {
   416  	return m.Unmarshal(b)
   417  }
   418  func (m *Step) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   419  	b = b[:cap(b)]
   420  	n, err := m.MarshalTo(b)
   421  	if err != nil {
   422  		return nil, err
   423  	}
   424  	return b[:n], nil
   425  }
   426  func (dst *Step) XXX_Merge(src proto.Message) {
   427  	xxx_messageInfo_Step.Merge(dst, src)
   428  }
   429  func (m *Step) XXX_Size() int {
   430  	return m.Size()
   431  }
   432  func (m *Step) XXX_DiscardUnknown() {
   433  	xxx_messageInfo_Step.DiscardUnknown(m)
   434  }
   435  
   436  var xxx_messageInfo_Step proto.InternalMessageInfo
   437  
   438  func init() {
   439  	proto.RegisterType((*BatchOperation)(nil), "cockroach.kv.kvnemesis.BatchOperation")
   440  	proto.RegisterType((*ClosureTxnOperation)(nil), "cockroach.kv.kvnemesis.ClosureTxnOperation")
   441  	proto.RegisterType((*GetOperation)(nil), "cockroach.kv.kvnemesis.GetOperation")
   442  	proto.RegisterType((*PutOperation)(nil), "cockroach.kv.kvnemesis.PutOperation")
   443  	proto.RegisterType((*SplitOperation)(nil), "cockroach.kv.kvnemesis.SplitOperation")
   444  	proto.RegisterType((*MergeOperation)(nil), "cockroach.kv.kvnemesis.MergeOperation")
   445  	proto.RegisterType((*ChangeReplicasOperation)(nil), "cockroach.kv.kvnemesis.ChangeReplicasOperation")
   446  	proto.RegisterType((*Operation)(nil), "cockroach.kv.kvnemesis.Operation")
   447  	proto.RegisterType((*Result)(nil), "cockroach.kv.kvnemesis.Result")
   448  	proto.RegisterType((*Step)(nil), "cockroach.kv.kvnemesis.Step")
   449  	proto.RegisterEnum("cockroach.kv.kvnemesis.ClosureTxnType", ClosureTxnType_name, ClosureTxnType_value)
   450  	proto.RegisterEnum("cockroach.kv.kvnemesis.ResultType", ResultType_name, ResultType_value)
   451  }
   452  func (m *BatchOperation) Marshal() (dAtA []byte, err error) {
   453  	size := m.Size()
   454  	dAtA = make([]byte, size)
   455  	n, err := m.MarshalTo(dAtA)
   456  	if err != nil {
   457  		return nil, err
   458  	}
   459  	return dAtA[:n], nil
   460  }
   461  
   462  func (m *BatchOperation) MarshalTo(dAtA []byte) (int, error) {
   463  	var i int
   464  	_ = i
   465  	var l int
   466  	_ = l
   467  	if len(m.Ops) > 0 {
   468  		for _, msg := range m.Ops {
   469  			dAtA[i] = 0xa
   470  			i++
   471  			i = encodeVarintOperations(dAtA, i, uint64(msg.Size()))
   472  			n, err := msg.MarshalTo(dAtA[i:])
   473  			if err != nil {
   474  				return 0, err
   475  			}
   476  			i += n
   477  		}
   478  	}
   479  	dAtA[i] = 0x12
   480  	i++
   481  	i = encodeVarintOperations(dAtA, i, uint64(m.Result.Size()))
   482  	n1, err := m.Result.MarshalTo(dAtA[i:])
   483  	if err != nil {
   484  		return 0, err
   485  	}
   486  	i += n1
   487  	return i, nil
   488  }
   489  
   490  func (m *ClosureTxnOperation) Marshal() (dAtA []byte, err error) {
   491  	size := m.Size()
   492  	dAtA = make([]byte, size)
   493  	n, err := m.MarshalTo(dAtA)
   494  	if err != nil {
   495  		return nil, err
   496  	}
   497  	return dAtA[:n], nil
   498  }
   499  
   500  func (m *ClosureTxnOperation) MarshalTo(dAtA []byte) (int, error) {
   501  	var i int
   502  	_ = i
   503  	var l int
   504  	_ = l
   505  	if len(m.TxnID) > 0 {
   506  		dAtA[i] = 0xa
   507  		i++
   508  		i = encodeVarintOperations(dAtA, i, uint64(len(m.TxnID)))
   509  		i += copy(dAtA[i:], m.TxnID)
   510  	}
   511  	if len(m.Ops) > 0 {
   512  		for _, msg := range m.Ops {
   513  			dAtA[i] = 0x12
   514  			i++
   515  			i = encodeVarintOperations(dAtA, i, uint64(msg.Size()))
   516  			n, err := msg.MarshalTo(dAtA[i:])
   517  			if err != nil {
   518  				return 0, err
   519  			}
   520  			i += n
   521  		}
   522  	}
   523  	if m.CommitInBatch != nil {
   524  		dAtA[i] = 0x1a
   525  		i++
   526  		i = encodeVarintOperations(dAtA, i, uint64(m.CommitInBatch.Size()))
   527  		n2, err := m.CommitInBatch.MarshalTo(dAtA[i:])
   528  		if err != nil {
   529  			return 0, err
   530  		}
   531  		i += n2
   532  	}
   533  	if m.Type != 0 {
   534  		dAtA[i] = 0x20
   535  		i++
   536  		i = encodeVarintOperations(dAtA, i, uint64(m.Type))
   537  	}
   538  	dAtA[i] = 0x2a
   539  	i++
   540  	i = encodeVarintOperations(dAtA, i, uint64(m.Result.Size()))
   541  	n3, err := m.Result.MarshalTo(dAtA[i:])
   542  	if err != nil {
   543  		return 0, err
   544  	}
   545  	i += n3
   546  	if m.Txn != nil {
   547  		dAtA[i] = 0x32
   548  		i++
   549  		i = encodeVarintOperations(dAtA, i, uint64(m.Txn.Size()))
   550  		n4, err := m.Txn.MarshalTo(dAtA[i:])
   551  		if err != nil {
   552  			return 0, err
   553  		}
   554  		i += n4
   555  	}
   556  	return i, nil
   557  }
   558  
   559  func (m *GetOperation) Marshal() (dAtA []byte, err error) {
   560  	size := m.Size()
   561  	dAtA = make([]byte, size)
   562  	n, err := m.MarshalTo(dAtA)
   563  	if err != nil {
   564  		return nil, err
   565  	}
   566  	return dAtA[:n], nil
   567  }
   568  
   569  func (m *GetOperation) MarshalTo(dAtA []byte) (int, error) {
   570  	var i int
   571  	_ = i
   572  	var l int
   573  	_ = l
   574  	if len(m.Key) > 0 {
   575  		dAtA[i] = 0xa
   576  		i++
   577  		i = encodeVarintOperations(dAtA, i, uint64(len(m.Key)))
   578  		i += copy(dAtA[i:], m.Key)
   579  	}
   580  	dAtA[i] = 0x12
   581  	i++
   582  	i = encodeVarintOperations(dAtA, i, uint64(m.Result.Size()))
   583  	n5, err := m.Result.MarshalTo(dAtA[i:])
   584  	if err != nil {
   585  		return 0, err
   586  	}
   587  	i += n5
   588  	return i, nil
   589  }
   590  
   591  func (m *PutOperation) Marshal() (dAtA []byte, err error) {
   592  	size := m.Size()
   593  	dAtA = make([]byte, size)
   594  	n, err := m.MarshalTo(dAtA)
   595  	if err != nil {
   596  		return nil, err
   597  	}
   598  	return dAtA[:n], nil
   599  }
   600  
   601  func (m *PutOperation) MarshalTo(dAtA []byte) (int, error) {
   602  	var i int
   603  	_ = i
   604  	var l int
   605  	_ = l
   606  	if len(m.Key) > 0 {
   607  		dAtA[i] = 0xa
   608  		i++
   609  		i = encodeVarintOperations(dAtA, i, uint64(len(m.Key)))
   610  		i += copy(dAtA[i:], m.Key)
   611  	}
   612  	if len(m.Value) > 0 {
   613  		dAtA[i] = 0x12
   614  		i++
   615  		i = encodeVarintOperations(dAtA, i, uint64(len(m.Value)))
   616  		i += copy(dAtA[i:], m.Value)
   617  	}
   618  	dAtA[i] = 0x1a
   619  	i++
   620  	i = encodeVarintOperations(dAtA, i, uint64(m.Result.Size()))
   621  	n6, err := m.Result.MarshalTo(dAtA[i:])
   622  	if err != nil {
   623  		return 0, err
   624  	}
   625  	i += n6
   626  	return i, nil
   627  }
   628  
   629  func (m *SplitOperation) Marshal() (dAtA []byte, err error) {
   630  	size := m.Size()
   631  	dAtA = make([]byte, size)
   632  	n, err := m.MarshalTo(dAtA)
   633  	if err != nil {
   634  		return nil, err
   635  	}
   636  	return dAtA[:n], nil
   637  }
   638  
   639  func (m *SplitOperation) MarshalTo(dAtA []byte) (int, error) {
   640  	var i int
   641  	_ = i
   642  	var l int
   643  	_ = l
   644  	if len(m.Key) > 0 {
   645  		dAtA[i] = 0xa
   646  		i++
   647  		i = encodeVarintOperations(dAtA, i, uint64(len(m.Key)))
   648  		i += copy(dAtA[i:], m.Key)
   649  	}
   650  	dAtA[i] = 0x12
   651  	i++
   652  	i = encodeVarintOperations(dAtA, i, uint64(m.Result.Size()))
   653  	n7, err := m.Result.MarshalTo(dAtA[i:])
   654  	if err != nil {
   655  		return 0, err
   656  	}
   657  	i += n7
   658  	return i, nil
   659  }
   660  
   661  func (m *MergeOperation) Marshal() (dAtA []byte, err error) {
   662  	size := m.Size()
   663  	dAtA = make([]byte, size)
   664  	n, err := m.MarshalTo(dAtA)
   665  	if err != nil {
   666  		return nil, err
   667  	}
   668  	return dAtA[:n], nil
   669  }
   670  
   671  func (m *MergeOperation) MarshalTo(dAtA []byte) (int, error) {
   672  	var i int
   673  	_ = i
   674  	var l int
   675  	_ = l
   676  	if len(m.Key) > 0 {
   677  		dAtA[i] = 0xa
   678  		i++
   679  		i = encodeVarintOperations(dAtA, i, uint64(len(m.Key)))
   680  		i += copy(dAtA[i:], m.Key)
   681  	}
   682  	dAtA[i] = 0x12
   683  	i++
   684  	i = encodeVarintOperations(dAtA, i, uint64(m.Result.Size()))
   685  	n8, err := m.Result.MarshalTo(dAtA[i:])
   686  	if err != nil {
   687  		return 0, err
   688  	}
   689  	i += n8
   690  	return i, nil
   691  }
   692  
   693  func (m *ChangeReplicasOperation) Marshal() (dAtA []byte, err error) {
   694  	size := m.Size()
   695  	dAtA = make([]byte, size)
   696  	n, err := m.MarshalTo(dAtA)
   697  	if err != nil {
   698  		return nil, err
   699  	}
   700  	return dAtA[:n], nil
   701  }
   702  
   703  func (m *ChangeReplicasOperation) MarshalTo(dAtA []byte) (int, error) {
   704  	var i int
   705  	_ = i
   706  	var l int
   707  	_ = l
   708  	if len(m.Key) > 0 {
   709  		dAtA[i] = 0xa
   710  		i++
   711  		i = encodeVarintOperations(dAtA, i, uint64(len(m.Key)))
   712  		i += copy(dAtA[i:], m.Key)
   713  	}
   714  	if len(m.Changes) > 0 {
   715  		for _, msg := range m.Changes {
   716  			dAtA[i] = 0x12
   717  			i++
   718  			i = encodeVarintOperations(dAtA, i, uint64(msg.Size()))
   719  			n, err := msg.MarshalTo(dAtA[i:])
   720  			if err != nil {
   721  				return 0, err
   722  			}
   723  			i += n
   724  		}
   725  	}
   726  	dAtA[i] = 0x1a
   727  	i++
   728  	i = encodeVarintOperations(dAtA, i, uint64(m.Result.Size()))
   729  	n9, err := m.Result.MarshalTo(dAtA[i:])
   730  	if err != nil {
   731  		return 0, err
   732  	}
   733  	i += n9
   734  	return i, nil
   735  }
   736  
   737  func (m *Operation) Marshal() (dAtA []byte, err error) {
   738  	size := m.Size()
   739  	dAtA = make([]byte, size)
   740  	n, err := m.MarshalTo(dAtA)
   741  	if err != nil {
   742  		return nil, err
   743  	}
   744  	return dAtA[:n], nil
   745  }
   746  
   747  func (m *Operation) MarshalTo(dAtA []byte) (int, error) {
   748  	var i int
   749  	_ = i
   750  	var l int
   751  	_ = l
   752  	if m.Batch != nil {
   753  		dAtA[i] = 0xa
   754  		i++
   755  		i = encodeVarintOperations(dAtA, i, uint64(m.Batch.Size()))
   756  		n10, err := m.Batch.MarshalTo(dAtA[i:])
   757  		if err != nil {
   758  			return 0, err
   759  		}
   760  		i += n10
   761  	}
   762  	if m.ClosureTxn != nil {
   763  		dAtA[i] = 0x12
   764  		i++
   765  		i = encodeVarintOperations(dAtA, i, uint64(m.ClosureTxn.Size()))
   766  		n11, err := m.ClosureTxn.MarshalTo(dAtA[i:])
   767  		if err != nil {
   768  			return 0, err
   769  		}
   770  		i += n11
   771  	}
   772  	if m.Get != nil {
   773  		dAtA[i] = 0x3a
   774  		i++
   775  		i = encodeVarintOperations(dAtA, i, uint64(m.Get.Size()))
   776  		n12, err := m.Get.MarshalTo(dAtA[i:])
   777  		if err != nil {
   778  			return 0, err
   779  		}
   780  		i += n12
   781  	}
   782  	if m.Put != nil {
   783  		dAtA[i] = 0x42
   784  		i++
   785  		i = encodeVarintOperations(dAtA, i, uint64(m.Put.Size()))
   786  		n13, err := m.Put.MarshalTo(dAtA[i:])
   787  		if err != nil {
   788  			return 0, err
   789  		}
   790  		i += n13
   791  	}
   792  	if m.Split != nil {
   793  		dAtA[i] = 0x4a
   794  		i++
   795  		i = encodeVarintOperations(dAtA, i, uint64(m.Split.Size()))
   796  		n14, err := m.Split.MarshalTo(dAtA[i:])
   797  		if err != nil {
   798  			return 0, err
   799  		}
   800  		i += n14
   801  	}
   802  	if m.Merge != nil {
   803  		dAtA[i] = 0x52
   804  		i++
   805  		i = encodeVarintOperations(dAtA, i, uint64(m.Merge.Size()))
   806  		n15, err := m.Merge.MarshalTo(dAtA[i:])
   807  		if err != nil {
   808  			return 0, err
   809  		}
   810  		i += n15
   811  	}
   812  	if m.ChangeReplicas != nil {
   813  		dAtA[i] = 0x5a
   814  		i++
   815  		i = encodeVarintOperations(dAtA, i, uint64(m.ChangeReplicas.Size()))
   816  		n16, err := m.ChangeReplicas.MarshalTo(dAtA[i:])
   817  		if err != nil {
   818  			return 0, err
   819  		}
   820  		i += n16
   821  	}
   822  	return i, nil
   823  }
   824  
   825  func (m *Result) Marshal() (dAtA []byte, err error) {
   826  	size := m.Size()
   827  	dAtA = make([]byte, size)
   828  	n, err := m.MarshalTo(dAtA)
   829  	if err != nil {
   830  		return nil, err
   831  	}
   832  	return dAtA[:n], nil
   833  }
   834  
   835  func (m *Result) MarshalTo(dAtA []byte) (int, error) {
   836  	var i int
   837  	_ = i
   838  	var l int
   839  	_ = l
   840  	if m.Type != 0 {
   841  		dAtA[i] = 0x8
   842  		i++
   843  		i = encodeVarintOperations(dAtA, i, uint64(m.Type))
   844  	}
   845  	if m.Err != nil {
   846  		dAtA[i] = 0x12
   847  		i++
   848  		i = encodeVarintOperations(dAtA, i, uint64(m.Err.Size()))
   849  		n17, err := m.Err.MarshalTo(dAtA[i:])
   850  		if err != nil {
   851  			return 0, err
   852  		}
   853  		i += n17
   854  	}
   855  	if len(m.Value) > 0 {
   856  		dAtA[i] = 0x1a
   857  		i++
   858  		i = encodeVarintOperations(dAtA, i, uint64(len(m.Value)))
   859  		i += copy(dAtA[i:], m.Value)
   860  	}
   861  	return i, nil
   862  }
   863  
   864  func (m *Step) Marshal() (dAtA []byte, err error) {
   865  	size := m.Size()
   866  	dAtA = make([]byte, size)
   867  	n, err := m.MarshalTo(dAtA)
   868  	if err != nil {
   869  		return nil, err
   870  	}
   871  	return dAtA[:n], nil
   872  }
   873  
   874  func (m *Step) MarshalTo(dAtA []byte) (int, error) {
   875  	var i int
   876  	_ = i
   877  	var l int
   878  	_ = l
   879  	dAtA[i] = 0xa
   880  	i++
   881  	i = encodeVarintOperations(dAtA, i, uint64(m.Op.Size()))
   882  	n18, err := m.Op.MarshalTo(dAtA[i:])
   883  	if err != nil {
   884  		return 0, err
   885  	}
   886  	i += n18
   887  	dAtA[i] = 0x12
   888  	i++
   889  	i = encodeVarintOperations(dAtA, i, uint64(m.Before.Size()))
   890  	n19, err := m.Before.MarshalTo(dAtA[i:])
   891  	if err != nil {
   892  		return 0, err
   893  	}
   894  	i += n19
   895  	dAtA[i] = 0x1a
   896  	i++
   897  	i = encodeVarintOperations(dAtA, i, uint64(m.After.Size()))
   898  	n20, err := m.After.MarshalTo(dAtA[i:])
   899  	if err != nil {
   900  		return 0, err
   901  	}
   902  	i += n20
   903  	if m.DBID != 0 {
   904  		dAtA[i] = 0x20
   905  		i++
   906  		i = encodeVarintOperations(dAtA, i, uint64(m.DBID))
   907  	}
   908  	if len(m.Trace) > 0 {
   909  		dAtA[i] = 0x2a
   910  		i++
   911  		i = encodeVarintOperations(dAtA, i, uint64(len(m.Trace)))
   912  		i += copy(dAtA[i:], m.Trace)
   913  	}
   914  	return i, nil
   915  }
   916  
   917  func encodeVarintOperations(dAtA []byte, offset int, v uint64) int {
   918  	for v >= 1<<7 {
   919  		dAtA[offset] = uint8(v&0x7f | 0x80)
   920  		v >>= 7
   921  		offset++
   922  	}
   923  	dAtA[offset] = uint8(v)
   924  	return offset + 1
   925  }
   926  func (m *BatchOperation) Size() (n int) {
   927  	if m == nil {
   928  		return 0
   929  	}
   930  	var l int
   931  	_ = l
   932  	if len(m.Ops) > 0 {
   933  		for _, e := range m.Ops {
   934  			l = e.Size()
   935  			n += 1 + l + sovOperations(uint64(l))
   936  		}
   937  	}
   938  	l = m.Result.Size()
   939  	n += 1 + l + sovOperations(uint64(l))
   940  	return n
   941  }
   942  
   943  func (m *ClosureTxnOperation) Size() (n int) {
   944  	if m == nil {
   945  		return 0
   946  	}
   947  	var l int
   948  	_ = l
   949  	l = len(m.TxnID)
   950  	if l > 0 {
   951  		n += 1 + l + sovOperations(uint64(l))
   952  	}
   953  	if len(m.Ops) > 0 {
   954  		for _, e := range m.Ops {
   955  			l = e.Size()
   956  			n += 1 + l + sovOperations(uint64(l))
   957  		}
   958  	}
   959  	if m.CommitInBatch != nil {
   960  		l = m.CommitInBatch.Size()
   961  		n += 1 + l + sovOperations(uint64(l))
   962  	}
   963  	if m.Type != 0 {
   964  		n += 1 + sovOperations(uint64(m.Type))
   965  	}
   966  	l = m.Result.Size()
   967  	n += 1 + l + sovOperations(uint64(l))
   968  	if m.Txn != nil {
   969  		l = m.Txn.Size()
   970  		n += 1 + l + sovOperations(uint64(l))
   971  	}
   972  	return n
   973  }
   974  
   975  func (m *GetOperation) Size() (n int) {
   976  	if m == nil {
   977  		return 0
   978  	}
   979  	var l int
   980  	_ = l
   981  	l = len(m.Key)
   982  	if l > 0 {
   983  		n += 1 + l + sovOperations(uint64(l))
   984  	}
   985  	l = m.Result.Size()
   986  	n += 1 + l + sovOperations(uint64(l))
   987  	return n
   988  }
   989  
   990  func (m *PutOperation) Size() (n int) {
   991  	if m == nil {
   992  		return 0
   993  	}
   994  	var l int
   995  	_ = l
   996  	l = len(m.Key)
   997  	if l > 0 {
   998  		n += 1 + l + sovOperations(uint64(l))
   999  	}
  1000  	l = len(m.Value)
  1001  	if l > 0 {
  1002  		n += 1 + l + sovOperations(uint64(l))
  1003  	}
  1004  	l = m.Result.Size()
  1005  	n += 1 + l + sovOperations(uint64(l))
  1006  	return n
  1007  }
  1008  
  1009  func (m *SplitOperation) Size() (n int) {
  1010  	if m == nil {
  1011  		return 0
  1012  	}
  1013  	var l int
  1014  	_ = l
  1015  	l = len(m.Key)
  1016  	if l > 0 {
  1017  		n += 1 + l + sovOperations(uint64(l))
  1018  	}
  1019  	l = m.Result.Size()
  1020  	n += 1 + l + sovOperations(uint64(l))
  1021  	return n
  1022  }
  1023  
  1024  func (m *MergeOperation) Size() (n int) {
  1025  	if m == nil {
  1026  		return 0
  1027  	}
  1028  	var l int
  1029  	_ = l
  1030  	l = len(m.Key)
  1031  	if l > 0 {
  1032  		n += 1 + l + sovOperations(uint64(l))
  1033  	}
  1034  	l = m.Result.Size()
  1035  	n += 1 + l + sovOperations(uint64(l))
  1036  	return n
  1037  }
  1038  
  1039  func (m *ChangeReplicasOperation) Size() (n int) {
  1040  	if m == nil {
  1041  		return 0
  1042  	}
  1043  	var l int
  1044  	_ = l
  1045  	l = len(m.Key)
  1046  	if l > 0 {
  1047  		n += 1 + l + sovOperations(uint64(l))
  1048  	}
  1049  	if len(m.Changes) > 0 {
  1050  		for _, e := range m.Changes {
  1051  			l = e.Size()
  1052  			n += 1 + l + sovOperations(uint64(l))
  1053  		}
  1054  	}
  1055  	l = m.Result.Size()
  1056  	n += 1 + l + sovOperations(uint64(l))
  1057  	return n
  1058  }
  1059  
  1060  func (m *Operation) Size() (n int) {
  1061  	if m == nil {
  1062  		return 0
  1063  	}
  1064  	var l int
  1065  	_ = l
  1066  	if m.Batch != nil {
  1067  		l = m.Batch.Size()
  1068  		n += 1 + l + sovOperations(uint64(l))
  1069  	}
  1070  	if m.ClosureTxn != nil {
  1071  		l = m.ClosureTxn.Size()
  1072  		n += 1 + l + sovOperations(uint64(l))
  1073  	}
  1074  	if m.Get != nil {
  1075  		l = m.Get.Size()
  1076  		n += 1 + l + sovOperations(uint64(l))
  1077  	}
  1078  	if m.Put != nil {
  1079  		l = m.Put.Size()
  1080  		n += 1 + l + sovOperations(uint64(l))
  1081  	}
  1082  	if m.Split != nil {
  1083  		l = m.Split.Size()
  1084  		n += 1 + l + sovOperations(uint64(l))
  1085  	}
  1086  	if m.Merge != nil {
  1087  		l = m.Merge.Size()
  1088  		n += 1 + l + sovOperations(uint64(l))
  1089  	}
  1090  	if m.ChangeReplicas != nil {
  1091  		l = m.ChangeReplicas.Size()
  1092  		n += 1 + l + sovOperations(uint64(l))
  1093  	}
  1094  	return n
  1095  }
  1096  
  1097  func (m *Result) Size() (n int) {
  1098  	if m == nil {
  1099  		return 0
  1100  	}
  1101  	var l int
  1102  	_ = l
  1103  	if m.Type != 0 {
  1104  		n += 1 + sovOperations(uint64(m.Type))
  1105  	}
  1106  	if m.Err != nil {
  1107  		l = m.Err.Size()
  1108  		n += 1 + l + sovOperations(uint64(l))
  1109  	}
  1110  	l = len(m.Value)
  1111  	if l > 0 {
  1112  		n += 1 + l + sovOperations(uint64(l))
  1113  	}
  1114  	return n
  1115  }
  1116  
  1117  func (m *Step) Size() (n int) {
  1118  	if m == nil {
  1119  		return 0
  1120  	}
  1121  	var l int
  1122  	_ = l
  1123  	l = m.Op.Size()
  1124  	n += 1 + l + sovOperations(uint64(l))
  1125  	l = m.Before.Size()
  1126  	n += 1 + l + sovOperations(uint64(l))
  1127  	l = m.After.Size()
  1128  	n += 1 + l + sovOperations(uint64(l))
  1129  	if m.DBID != 0 {
  1130  		n += 1 + sovOperations(uint64(m.DBID))
  1131  	}
  1132  	l = len(m.Trace)
  1133  	if l > 0 {
  1134  		n += 1 + l + sovOperations(uint64(l))
  1135  	}
  1136  	return n
  1137  }
  1138  
  1139  func sovOperations(x uint64) (n int) {
  1140  	for {
  1141  		n++
  1142  		x >>= 7
  1143  		if x == 0 {
  1144  			break
  1145  		}
  1146  	}
  1147  	return n
  1148  }
  1149  func sozOperations(x uint64) (n int) {
  1150  	return sovOperations(uint64((x << 1) ^ uint64((int64(x) >> 63))))
  1151  }
  1152  func (this *Operation) GetValue() interface{} {
  1153  	if this.Batch != nil {
  1154  		return this.Batch
  1155  	}
  1156  	if this.ClosureTxn != nil {
  1157  		return this.ClosureTxn
  1158  	}
  1159  	if this.Get != nil {
  1160  		return this.Get
  1161  	}
  1162  	if this.Put != nil {
  1163  		return this.Put
  1164  	}
  1165  	if this.Split != nil {
  1166  		return this.Split
  1167  	}
  1168  	if this.Merge != nil {
  1169  		return this.Merge
  1170  	}
  1171  	if this.ChangeReplicas != nil {
  1172  		return this.ChangeReplicas
  1173  	}
  1174  	return nil
  1175  }
  1176  
  1177  func (this *Operation) SetValue(value interface{}) bool {
  1178  	switch vt := value.(type) {
  1179  	case *BatchOperation:
  1180  		this.Batch = vt
  1181  	case *ClosureTxnOperation:
  1182  		this.ClosureTxn = vt
  1183  	case *GetOperation:
  1184  		this.Get = vt
  1185  	case *PutOperation:
  1186  		this.Put = vt
  1187  	case *SplitOperation:
  1188  		this.Split = vt
  1189  	case *MergeOperation:
  1190  		this.Merge = vt
  1191  	case *ChangeReplicasOperation:
  1192  		this.ChangeReplicas = vt
  1193  	default:
  1194  		return false
  1195  	}
  1196  	return true
  1197  }
  1198  func (m *BatchOperation) Unmarshal(dAtA []byte) error {
  1199  	l := len(dAtA)
  1200  	iNdEx := 0
  1201  	for iNdEx < l {
  1202  		preIndex := iNdEx
  1203  		var wire uint64
  1204  		for shift := uint(0); ; shift += 7 {
  1205  			if shift >= 64 {
  1206  				return ErrIntOverflowOperations
  1207  			}
  1208  			if iNdEx >= l {
  1209  				return io.ErrUnexpectedEOF
  1210  			}
  1211  			b := dAtA[iNdEx]
  1212  			iNdEx++
  1213  			wire |= (uint64(b) & 0x7F) << shift
  1214  			if b < 0x80 {
  1215  				break
  1216  			}
  1217  		}
  1218  		fieldNum := int32(wire >> 3)
  1219  		wireType := int(wire & 0x7)
  1220  		if wireType == 4 {
  1221  			return fmt.Errorf("proto: BatchOperation: wiretype end group for non-group")
  1222  		}
  1223  		if fieldNum <= 0 {
  1224  			return fmt.Errorf("proto: BatchOperation: illegal tag %d (wire type %d)", fieldNum, wire)
  1225  		}
  1226  		switch fieldNum {
  1227  		case 1:
  1228  			if wireType != 2 {
  1229  				return fmt.Errorf("proto: wrong wireType = %d for field Ops", wireType)
  1230  			}
  1231  			var msglen int
  1232  			for shift := uint(0); ; shift += 7 {
  1233  				if shift >= 64 {
  1234  					return ErrIntOverflowOperations
  1235  				}
  1236  				if iNdEx >= l {
  1237  					return io.ErrUnexpectedEOF
  1238  				}
  1239  				b := dAtA[iNdEx]
  1240  				iNdEx++
  1241  				msglen |= (int(b) & 0x7F) << shift
  1242  				if b < 0x80 {
  1243  					break
  1244  				}
  1245  			}
  1246  			if msglen < 0 {
  1247  				return ErrInvalidLengthOperations
  1248  			}
  1249  			postIndex := iNdEx + msglen
  1250  			if postIndex > l {
  1251  				return io.ErrUnexpectedEOF
  1252  			}
  1253  			m.Ops = append(m.Ops, Operation{})
  1254  			if err := m.Ops[len(m.Ops)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1255  				return err
  1256  			}
  1257  			iNdEx = postIndex
  1258  		case 2:
  1259  			if wireType != 2 {
  1260  				return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType)
  1261  			}
  1262  			var msglen int
  1263  			for shift := uint(0); ; shift += 7 {
  1264  				if shift >= 64 {
  1265  					return ErrIntOverflowOperations
  1266  				}
  1267  				if iNdEx >= l {
  1268  					return io.ErrUnexpectedEOF
  1269  				}
  1270  				b := dAtA[iNdEx]
  1271  				iNdEx++
  1272  				msglen |= (int(b) & 0x7F) << shift
  1273  				if b < 0x80 {
  1274  					break
  1275  				}
  1276  			}
  1277  			if msglen < 0 {
  1278  				return ErrInvalidLengthOperations
  1279  			}
  1280  			postIndex := iNdEx + msglen
  1281  			if postIndex > l {
  1282  				return io.ErrUnexpectedEOF
  1283  			}
  1284  			if err := m.Result.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1285  				return err
  1286  			}
  1287  			iNdEx = postIndex
  1288  		default:
  1289  			iNdEx = preIndex
  1290  			skippy, err := skipOperations(dAtA[iNdEx:])
  1291  			if err != nil {
  1292  				return err
  1293  			}
  1294  			if skippy < 0 {
  1295  				return ErrInvalidLengthOperations
  1296  			}
  1297  			if (iNdEx + skippy) > l {
  1298  				return io.ErrUnexpectedEOF
  1299  			}
  1300  			iNdEx += skippy
  1301  		}
  1302  	}
  1303  
  1304  	if iNdEx > l {
  1305  		return io.ErrUnexpectedEOF
  1306  	}
  1307  	return nil
  1308  }
  1309  func (m *ClosureTxnOperation) Unmarshal(dAtA []byte) error {
  1310  	l := len(dAtA)
  1311  	iNdEx := 0
  1312  	for iNdEx < l {
  1313  		preIndex := iNdEx
  1314  		var wire uint64
  1315  		for shift := uint(0); ; shift += 7 {
  1316  			if shift >= 64 {
  1317  				return ErrIntOverflowOperations
  1318  			}
  1319  			if iNdEx >= l {
  1320  				return io.ErrUnexpectedEOF
  1321  			}
  1322  			b := dAtA[iNdEx]
  1323  			iNdEx++
  1324  			wire |= (uint64(b) & 0x7F) << shift
  1325  			if b < 0x80 {
  1326  				break
  1327  			}
  1328  		}
  1329  		fieldNum := int32(wire >> 3)
  1330  		wireType := int(wire & 0x7)
  1331  		if wireType == 4 {
  1332  			return fmt.Errorf("proto: ClosureTxnOperation: wiretype end group for non-group")
  1333  		}
  1334  		if fieldNum <= 0 {
  1335  			return fmt.Errorf("proto: ClosureTxnOperation: illegal tag %d (wire type %d)", fieldNum, wire)
  1336  		}
  1337  		switch fieldNum {
  1338  		case 1:
  1339  			if wireType != 2 {
  1340  				return fmt.Errorf("proto: wrong wireType = %d for field TxnID", wireType)
  1341  			}
  1342  			var stringLen uint64
  1343  			for shift := uint(0); ; shift += 7 {
  1344  				if shift >= 64 {
  1345  					return ErrIntOverflowOperations
  1346  				}
  1347  				if iNdEx >= l {
  1348  					return io.ErrUnexpectedEOF
  1349  				}
  1350  				b := dAtA[iNdEx]
  1351  				iNdEx++
  1352  				stringLen |= (uint64(b) & 0x7F) << shift
  1353  				if b < 0x80 {
  1354  					break
  1355  				}
  1356  			}
  1357  			intStringLen := int(stringLen)
  1358  			if intStringLen < 0 {
  1359  				return ErrInvalidLengthOperations
  1360  			}
  1361  			postIndex := iNdEx + intStringLen
  1362  			if postIndex > l {
  1363  				return io.ErrUnexpectedEOF
  1364  			}
  1365  			m.TxnID = string(dAtA[iNdEx:postIndex])
  1366  			iNdEx = postIndex
  1367  		case 2:
  1368  			if wireType != 2 {
  1369  				return fmt.Errorf("proto: wrong wireType = %d for field Ops", wireType)
  1370  			}
  1371  			var msglen int
  1372  			for shift := uint(0); ; shift += 7 {
  1373  				if shift >= 64 {
  1374  					return ErrIntOverflowOperations
  1375  				}
  1376  				if iNdEx >= l {
  1377  					return io.ErrUnexpectedEOF
  1378  				}
  1379  				b := dAtA[iNdEx]
  1380  				iNdEx++
  1381  				msglen |= (int(b) & 0x7F) << shift
  1382  				if b < 0x80 {
  1383  					break
  1384  				}
  1385  			}
  1386  			if msglen < 0 {
  1387  				return ErrInvalidLengthOperations
  1388  			}
  1389  			postIndex := iNdEx + msglen
  1390  			if postIndex > l {
  1391  				return io.ErrUnexpectedEOF
  1392  			}
  1393  			m.Ops = append(m.Ops, Operation{})
  1394  			if err := m.Ops[len(m.Ops)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1395  				return err
  1396  			}
  1397  			iNdEx = postIndex
  1398  		case 3:
  1399  			if wireType != 2 {
  1400  				return fmt.Errorf("proto: wrong wireType = %d for field CommitInBatch", wireType)
  1401  			}
  1402  			var msglen int
  1403  			for shift := uint(0); ; shift += 7 {
  1404  				if shift >= 64 {
  1405  					return ErrIntOverflowOperations
  1406  				}
  1407  				if iNdEx >= l {
  1408  					return io.ErrUnexpectedEOF
  1409  				}
  1410  				b := dAtA[iNdEx]
  1411  				iNdEx++
  1412  				msglen |= (int(b) & 0x7F) << shift
  1413  				if b < 0x80 {
  1414  					break
  1415  				}
  1416  			}
  1417  			if msglen < 0 {
  1418  				return ErrInvalidLengthOperations
  1419  			}
  1420  			postIndex := iNdEx + msglen
  1421  			if postIndex > l {
  1422  				return io.ErrUnexpectedEOF
  1423  			}
  1424  			if m.CommitInBatch == nil {
  1425  				m.CommitInBatch = &BatchOperation{}
  1426  			}
  1427  			if err := m.CommitInBatch.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1428  				return err
  1429  			}
  1430  			iNdEx = postIndex
  1431  		case 4:
  1432  			if wireType != 0 {
  1433  				return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  1434  			}
  1435  			m.Type = 0
  1436  			for shift := uint(0); ; shift += 7 {
  1437  				if shift >= 64 {
  1438  					return ErrIntOverflowOperations
  1439  				}
  1440  				if iNdEx >= l {
  1441  					return io.ErrUnexpectedEOF
  1442  				}
  1443  				b := dAtA[iNdEx]
  1444  				iNdEx++
  1445  				m.Type |= (ClosureTxnType(b) & 0x7F) << shift
  1446  				if b < 0x80 {
  1447  					break
  1448  				}
  1449  			}
  1450  		case 5:
  1451  			if wireType != 2 {
  1452  				return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType)
  1453  			}
  1454  			var msglen int
  1455  			for shift := uint(0); ; shift += 7 {
  1456  				if shift >= 64 {
  1457  					return ErrIntOverflowOperations
  1458  				}
  1459  				if iNdEx >= l {
  1460  					return io.ErrUnexpectedEOF
  1461  				}
  1462  				b := dAtA[iNdEx]
  1463  				iNdEx++
  1464  				msglen |= (int(b) & 0x7F) << shift
  1465  				if b < 0x80 {
  1466  					break
  1467  				}
  1468  			}
  1469  			if msglen < 0 {
  1470  				return ErrInvalidLengthOperations
  1471  			}
  1472  			postIndex := iNdEx + msglen
  1473  			if postIndex > l {
  1474  				return io.ErrUnexpectedEOF
  1475  			}
  1476  			if err := m.Result.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1477  				return err
  1478  			}
  1479  			iNdEx = postIndex
  1480  		case 6:
  1481  			if wireType != 2 {
  1482  				return fmt.Errorf("proto: wrong wireType = %d for field Txn", wireType)
  1483  			}
  1484  			var msglen int
  1485  			for shift := uint(0); ; shift += 7 {
  1486  				if shift >= 64 {
  1487  					return ErrIntOverflowOperations
  1488  				}
  1489  				if iNdEx >= l {
  1490  					return io.ErrUnexpectedEOF
  1491  				}
  1492  				b := dAtA[iNdEx]
  1493  				iNdEx++
  1494  				msglen |= (int(b) & 0x7F) << shift
  1495  				if b < 0x80 {
  1496  					break
  1497  				}
  1498  			}
  1499  			if msglen < 0 {
  1500  				return ErrInvalidLengthOperations
  1501  			}
  1502  			postIndex := iNdEx + msglen
  1503  			if postIndex > l {
  1504  				return io.ErrUnexpectedEOF
  1505  			}
  1506  			if m.Txn == nil {
  1507  				m.Txn = &roachpb.Transaction{}
  1508  			}
  1509  			if err := m.Txn.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1510  				return err
  1511  			}
  1512  			iNdEx = postIndex
  1513  		default:
  1514  			iNdEx = preIndex
  1515  			skippy, err := skipOperations(dAtA[iNdEx:])
  1516  			if err != nil {
  1517  				return err
  1518  			}
  1519  			if skippy < 0 {
  1520  				return ErrInvalidLengthOperations
  1521  			}
  1522  			if (iNdEx + skippy) > l {
  1523  				return io.ErrUnexpectedEOF
  1524  			}
  1525  			iNdEx += skippy
  1526  		}
  1527  	}
  1528  
  1529  	if iNdEx > l {
  1530  		return io.ErrUnexpectedEOF
  1531  	}
  1532  	return nil
  1533  }
  1534  func (m *GetOperation) Unmarshal(dAtA []byte) error {
  1535  	l := len(dAtA)
  1536  	iNdEx := 0
  1537  	for iNdEx < l {
  1538  		preIndex := iNdEx
  1539  		var wire uint64
  1540  		for shift := uint(0); ; shift += 7 {
  1541  			if shift >= 64 {
  1542  				return ErrIntOverflowOperations
  1543  			}
  1544  			if iNdEx >= l {
  1545  				return io.ErrUnexpectedEOF
  1546  			}
  1547  			b := dAtA[iNdEx]
  1548  			iNdEx++
  1549  			wire |= (uint64(b) & 0x7F) << shift
  1550  			if b < 0x80 {
  1551  				break
  1552  			}
  1553  		}
  1554  		fieldNum := int32(wire >> 3)
  1555  		wireType := int(wire & 0x7)
  1556  		if wireType == 4 {
  1557  			return fmt.Errorf("proto: GetOperation: wiretype end group for non-group")
  1558  		}
  1559  		if fieldNum <= 0 {
  1560  			return fmt.Errorf("proto: GetOperation: illegal tag %d (wire type %d)", fieldNum, wire)
  1561  		}
  1562  		switch fieldNum {
  1563  		case 1:
  1564  			if wireType != 2 {
  1565  				return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
  1566  			}
  1567  			var byteLen int
  1568  			for shift := uint(0); ; shift += 7 {
  1569  				if shift >= 64 {
  1570  					return ErrIntOverflowOperations
  1571  				}
  1572  				if iNdEx >= l {
  1573  					return io.ErrUnexpectedEOF
  1574  				}
  1575  				b := dAtA[iNdEx]
  1576  				iNdEx++
  1577  				byteLen |= (int(b) & 0x7F) << shift
  1578  				if b < 0x80 {
  1579  					break
  1580  				}
  1581  			}
  1582  			if byteLen < 0 {
  1583  				return ErrInvalidLengthOperations
  1584  			}
  1585  			postIndex := iNdEx + byteLen
  1586  			if postIndex > l {
  1587  				return io.ErrUnexpectedEOF
  1588  			}
  1589  			m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...)
  1590  			if m.Key == nil {
  1591  				m.Key = []byte{}
  1592  			}
  1593  			iNdEx = postIndex
  1594  		case 2:
  1595  			if wireType != 2 {
  1596  				return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType)
  1597  			}
  1598  			var msglen int
  1599  			for shift := uint(0); ; shift += 7 {
  1600  				if shift >= 64 {
  1601  					return ErrIntOverflowOperations
  1602  				}
  1603  				if iNdEx >= l {
  1604  					return io.ErrUnexpectedEOF
  1605  				}
  1606  				b := dAtA[iNdEx]
  1607  				iNdEx++
  1608  				msglen |= (int(b) & 0x7F) << shift
  1609  				if b < 0x80 {
  1610  					break
  1611  				}
  1612  			}
  1613  			if msglen < 0 {
  1614  				return ErrInvalidLengthOperations
  1615  			}
  1616  			postIndex := iNdEx + msglen
  1617  			if postIndex > l {
  1618  				return io.ErrUnexpectedEOF
  1619  			}
  1620  			if err := m.Result.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1621  				return err
  1622  			}
  1623  			iNdEx = postIndex
  1624  		default:
  1625  			iNdEx = preIndex
  1626  			skippy, err := skipOperations(dAtA[iNdEx:])
  1627  			if err != nil {
  1628  				return err
  1629  			}
  1630  			if skippy < 0 {
  1631  				return ErrInvalidLengthOperations
  1632  			}
  1633  			if (iNdEx + skippy) > l {
  1634  				return io.ErrUnexpectedEOF
  1635  			}
  1636  			iNdEx += skippy
  1637  		}
  1638  	}
  1639  
  1640  	if iNdEx > l {
  1641  		return io.ErrUnexpectedEOF
  1642  	}
  1643  	return nil
  1644  }
  1645  func (m *PutOperation) Unmarshal(dAtA []byte) error {
  1646  	l := len(dAtA)
  1647  	iNdEx := 0
  1648  	for iNdEx < l {
  1649  		preIndex := iNdEx
  1650  		var wire uint64
  1651  		for shift := uint(0); ; shift += 7 {
  1652  			if shift >= 64 {
  1653  				return ErrIntOverflowOperations
  1654  			}
  1655  			if iNdEx >= l {
  1656  				return io.ErrUnexpectedEOF
  1657  			}
  1658  			b := dAtA[iNdEx]
  1659  			iNdEx++
  1660  			wire |= (uint64(b) & 0x7F) << shift
  1661  			if b < 0x80 {
  1662  				break
  1663  			}
  1664  		}
  1665  		fieldNum := int32(wire >> 3)
  1666  		wireType := int(wire & 0x7)
  1667  		if wireType == 4 {
  1668  			return fmt.Errorf("proto: PutOperation: wiretype end group for non-group")
  1669  		}
  1670  		if fieldNum <= 0 {
  1671  			return fmt.Errorf("proto: PutOperation: illegal tag %d (wire type %d)", fieldNum, wire)
  1672  		}
  1673  		switch fieldNum {
  1674  		case 1:
  1675  			if wireType != 2 {
  1676  				return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
  1677  			}
  1678  			var byteLen int
  1679  			for shift := uint(0); ; shift += 7 {
  1680  				if shift >= 64 {
  1681  					return ErrIntOverflowOperations
  1682  				}
  1683  				if iNdEx >= l {
  1684  					return io.ErrUnexpectedEOF
  1685  				}
  1686  				b := dAtA[iNdEx]
  1687  				iNdEx++
  1688  				byteLen |= (int(b) & 0x7F) << shift
  1689  				if b < 0x80 {
  1690  					break
  1691  				}
  1692  			}
  1693  			if byteLen < 0 {
  1694  				return ErrInvalidLengthOperations
  1695  			}
  1696  			postIndex := iNdEx + byteLen
  1697  			if postIndex > l {
  1698  				return io.ErrUnexpectedEOF
  1699  			}
  1700  			m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...)
  1701  			if m.Key == nil {
  1702  				m.Key = []byte{}
  1703  			}
  1704  			iNdEx = postIndex
  1705  		case 2:
  1706  			if wireType != 2 {
  1707  				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
  1708  			}
  1709  			var byteLen int
  1710  			for shift := uint(0); ; shift += 7 {
  1711  				if shift >= 64 {
  1712  					return ErrIntOverflowOperations
  1713  				}
  1714  				if iNdEx >= l {
  1715  					return io.ErrUnexpectedEOF
  1716  				}
  1717  				b := dAtA[iNdEx]
  1718  				iNdEx++
  1719  				byteLen |= (int(b) & 0x7F) << shift
  1720  				if b < 0x80 {
  1721  					break
  1722  				}
  1723  			}
  1724  			if byteLen < 0 {
  1725  				return ErrInvalidLengthOperations
  1726  			}
  1727  			postIndex := iNdEx + byteLen
  1728  			if postIndex > l {
  1729  				return io.ErrUnexpectedEOF
  1730  			}
  1731  			m.Value = append(m.Value[:0], dAtA[iNdEx:postIndex]...)
  1732  			if m.Value == nil {
  1733  				m.Value = []byte{}
  1734  			}
  1735  			iNdEx = postIndex
  1736  		case 3:
  1737  			if wireType != 2 {
  1738  				return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType)
  1739  			}
  1740  			var msglen int
  1741  			for shift := uint(0); ; shift += 7 {
  1742  				if shift >= 64 {
  1743  					return ErrIntOverflowOperations
  1744  				}
  1745  				if iNdEx >= l {
  1746  					return io.ErrUnexpectedEOF
  1747  				}
  1748  				b := dAtA[iNdEx]
  1749  				iNdEx++
  1750  				msglen |= (int(b) & 0x7F) << shift
  1751  				if b < 0x80 {
  1752  					break
  1753  				}
  1754  			}
  1755  			if msglen < 0 {
  1756  				return ErrInvalidLengthOperations
  1757  			}
  1758  			postIndex := iNdEx + msglen
  1759  			if postIndex > l {
  1760  				return io.ErrUnexpectedEOF
  1761  			}
  1762  			if err := m.Result.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1763  				return err
  1764  			}
  1765  			iNdEx = postIndex
  1766  		default:
  1767  			iNdEx = preIndex
  1768  			skippy, err := skipOperations(dAtA[iNdEx:])
  1769  			if err != nil {
  1770  				return err
  1771  			}
  1772  			if skippy < 0 {
  1773  				return ErrInvalidLengthOperations
  1774  			}
  1775  			if (iNdEx + skippy) > l {
  1776  				return io.ErrUnexpectedEOF
  1777  			}
  1778  			iNdEx += skippy
  1779  		}
  1780  	}
  1781  
  1782  	if iNdEx > l {
  1783  		return io.ErrUnexpectedEOF
  1784  	}
  1785  	return nil
  1786  }
  1787  func (m *SplitOperation) Unmarshal(dAtA []byte) error {
  1788  	l := len(dAtA)
  1789  	iNdEx := 0
  1790  	for iNdEx < l {
  1791  		preIndex := iNdEx
  1792  		var wire uint64
  1793  		for shift := uint(0); ; shift += 7 {
  1794  			if shift >= 64 {
  1795  				return ErrIntOverflowOperations
  1796  			}
  1797  			if iNdEx >= l {
  1798  				return io.ErrUnexpectedEOF
  1799  			}
  1800  			b := dAtA[iNdEx]
  1801  			iNdEx++
  1802  			wire |= (uint64(b) & 0x7F) << shift
  1803  			if b < 0x80 {
  1804  				break
  1805  			}
  1806  		}
  1807  		fieldNum := int32(wire >> 3)
  1808  		wireType := int(wire & 0x7)
  1809  		if wireType == 4 {
  1810  			return fmt.Errorf("proto: SplitOperation: wiretype end group for non-group")
  1811  		}
  1812  		if fieldNum <= 0 {
  1813  			return fmt.Errorf("proto: SplitOperation: illegal tag %d (wire type %d)", fieldNum, wire)
  1814  		}
  1815  		switch fieldNum {
  1816  		case 1:
  1817  			if wireType != 2 {
  1818  				return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
  1819  			}
  1820  			var byteLen int
  1821  			for shift := uint(0); ; shift += 7 {
  1822  				if shift >= 64 {
  1823  					return ErrIntOverflowOperations
  1824  				}
  1825  				if iNdEx >= l {
  1826  					return io.ErrUnexpectedEOF
  1827  				}
  1828  				b := dAtA[iNdEx]
  1829  				iNdEx++
  1830  				byteLen |= (int(b) & 0x7F) << shift
  1831  				if b < 0x80 {
  1832  					break
  1833  				}
  1834  			}
  1835  			if byteLen < 0 {
  1836  				return ErrInvalidLengthOperations
  1837  			}
  1838  			postIndex := iNdEx + byteLen
  1839  			if postIndex > l {
  1840  				return io.ErrUnexpectedEOF
  1841  			}
  1842  			m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...)
  1843  			if m.Key == nil {
  1844  				m.Key = []byte{}
  1845  			}
  1846  			iNdEx = postIndex
  1847  		case 2:
  1848  			if wireType != 2 {
  1849  				return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType)
  1850  			}
  1851  			var msglen int
  1852  			for shift := uint(0); ; shift += 7 {
  1853  				if shift >= 64 {
  1854  					return ErrIntOverflowOperations
  1855  				}
  1856  				if iNdEx >= l {
  1857  					return io.ErrUnexpectedEOF
  1858  				}
  1859  				b := dAtA[iNdEx]
  1860  				iNdEx++
  1861  				msglen |= (int(b) & 0x7F) << shift
  1862  				if b < 0x80 {
  1863  					break
  1864  				}
  1865  			}
  1866  			if msglen < 0 {
  1867  				return ErrInvalidLengthOperations
  1868  			}
  1869  			postIndex := iNdEx + msglen
  1870  			if postIndex > l {
  1871  				return io.ErrUnexpectedEOF
  1872  			}
  1873  			if err := m.Result.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1874  				return err
  1875  			}
  1876  			iNdEx = postIndex
  1877  		default:
  1878  			iNdEx = preIndex
  1879  			skippy, err := skipOperations(dAtA[iNdEx:])
  1880  			if err != nil {
  1881  				return err
  1882  			}
  1883  			if skippy < 0 {
  1884  				return ErrInvalidLengthOperations
  1885  			}
  1886  			if (iNdEx + skippy) > l {
  1887  				return io.ErrUnexpectedEOF
  1888  			}
  1889  			iNdEx += skippy
  1890  		}
  1891  	}
  1892  
  1893  	if iNdEx > l {
  1894  		return io.ErrUnexpectedEOF
  1895  	}
  1896  	return nil
  1897  }
  1898  func (m *MergeOperation) Unmarshal(dAtA []byte) error {
  1899  	l := len(dAtA)
  1900  	iNdEx := 0
  1901  	for iNdEx < l {
  1902  		preIndex := iNdEx
  1903  		var wire uint64
  1904  		for shift := uint(0); ; shift += 7 {
  1905  			if shift >= 64 {
  1906  				return ErrIntOverflowOperations
  1907  			}
  1908  			if iNdEx >= l {
  1909  				return io.ErrUnexpectedEOF
  1910  			}
  1911  			b := dAtA[iNdEx]
  1912  			iNdEx++
  1913  			wire |= (uint64(b) & 0x7F) << shift
  1914  			if b < 0x80 {
  1915  				break
  1916  			}
  1917  		}
  1918  		fieldNum := int32(wire >> 3)
  1919  		wireType := int(wire & 0x7)
  1920  		if wireType == 4 {
  1921  			return fmt.Errorf("proto: MergeOperation: wiretype end group for non-group")
  1922  		}
  1923  		if fieldNum <= 0 {
  1924  			return fmt.Errorf("proto: MergeOperation: illegal tag %d (wire type %d)", fieldNum, wire)
  1925  		}
  1926  		switch fieldNum {
  1927  		case 1:
  1928  			if wireType != 2 {
  1929  				return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
  1930  			}
  1931  			var byteLen int
  1932  			for shift := uint(0); ; shift += 7 {
  1933  				if shift >= 64 {
  1934  					return ErrIntOverflowOperations
  1935  				}
  1936  				if iNdEx >= l {
  1937  					return io.ErrUnexpectedEOF
  1938  				}
  1939  				b := dAtA[iNdEx]
  1940  				iNdEx++
  1941  				byteLen |= (int(b) & 0x7F) << shift
  1942  				if b < 0x80 {
  1943  					break
  1944  				}
  1945  			}
  1946  			if byteLen < 0 {
  1947  				return ErrInvalidLengthOperations
  1948  			}
  1949  			postIndex := iNdEx + byteLen
  1950  			if postIndex > l {
  1951  				return io.ErrUnexpectedEOF
  1952  			}
  1953  			m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...)
  1954  			if m.Key == nil {
  1955  				m.Key = []byte{}
  1956  			}
  1957  			iNdEx = postIndex
  1958  		case 2:
  1959  			if wireType != 2 {
  1960  				return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType)
  1961  			}
  1962  			var msglen int
  1963  			for shift := uint(0); ; shift += 7 {
  1964  				if shift >= 64 {
  1965  					return ErrIntOverflowOperations
  1966  				}
  1967  				if iNdEx >= l {
  1968  					return io.ErrUnexpectedEOF
  1969  				}
  1970  				b := dAtA[iNdEx]
  1971  				iNdEx++
  1972  				msglen |= (int(b) & 0x7F) << shift
  1973  				if b < 0x80 {
  1974  					break
  1975  				}
  1976  			}
  1977  			if msglen < 0 {
  1978  				return ErrInvalidLengthOperations
  1979  			}
  1980  			postIndex := iNdEx + msglen
  1981  			if postIndex > l {
  1982  				return io.ErrUnexpectedEOF
  1983  			}
  1984  			if err := m.Result.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1985  				return err
  1986  			}
  1987  			iNdEx = postIndex
  1988  		default:
  1989  			iNdEx = preIndex
  1990  			skippy, err := skipOperations(dAtA[iNdEx:])
  1991  			if err != nil {
  1992  				return err
  1993  			}
  1994  			if skippy < 0 {
  1995  				return ErrInvalidLengthOperations
  1996  			}
  1997  			if (iNdEx + skippy) > l {
  1998  				return io.ErrUnexpectedEOF
  1999  			}
  2000  			iNdEx += skippy
  2001  		}
  2002  	}
  2003  
  2004  	if iNdEx > l {
  2005  		return io.ErrUnexpectedEOF
  2006  	}
  2007  	return nil
  2008  }
  2009  func (m *ChangeReplicasOperation) Unmarshal(dAtA []byte) error {
  2010  	l := len(dAtA)
  2011  	iNdEx := 0
  2012  	for iNdEx < l {
  2013  		preIndex := iNdEx
  2014  		var wire uint64
  2015  		for shift := uint(0); ; shift += 7 {
  2016  			if shift >= 64 {
  2017  				return ErrIntOverflowOperations
  2018  			}
  2019  			if iNdEx >= l {
  2020  				return io.ErrUnexpectedEOF
  2021  			}
  2022  			b := dAtA[iNdEx]
  2023  			iNdEx++
  2024  			wire |= (uint64(b) & 0x7F) << shift
  2025  			if b < 0x80 {
  2026  				break
  2027  			}
  2028  		}
  2029  		fieldNum := int32(wire >> 3)
  2030  		wireType := int(wire & 0x7)
  2031  		if wireType == 4 {
  2032  			return fmt.Errorf("proto: ChangeReplicasOperation: wiretype end group for non-group")
  2033  		}
  2034  		if fieldNum <= 0 {
  2035  			return fmt.Errorf("proto: ChangeReplicasOperation: illegal tag %d (wire type %d)", fieldNum, wire)
  2036  		}
  2037  		switch fieldNum {
  2038  		case 1:
  2039  			if wireType != 2 {
  2040  				return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
  2041  			}
  2042  			var byteLen int
  2043  			for shift := uint(0); ; shift += 7 {
  2044  				if shift >= 64 {
  2045  					return ErrIntOverflowOperations
  2046  				}
  2047  				if iNdEx >= l {
  2048  					return io.ErrUnexpectedEOF
  2049  				}
  2050  				b := dAtA[iNdEx]
  2051  				iNdEx++
  2052  				byteLen |= (int(b) & 0x7F) << shift
  2053  				if b < 0x80 {
  2054  					break
  2055  				}
  2056  			}
  2057  			if byteLen < 0 {
  2058  				return ErrInvalidLengthOperations
  2059  			}
  2060  			postIndex := iNdEx + byteLen
  2061  			if postIndex > l {
  2062  				return io.ErrUnexpectedEOF
  2063  			}
  2064  			m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...)
  2065  			if m.Key == nil {
  2066  				m.Key = []byte{}
  2067  			}
  2068  			iNdEx = postIndex
  2069  		case 2:
  2070  			if wireType != 2 {
  2071  				return fmt.Errorf("proto: wrong wireType = %d for field Changes", wireType)
  2072  			}
  2073  			var msglen int
  2074  			for shift := uint(0); ; shift += 7 {
  2075  				if shift >= 64 {
  2076  					return ErrIntOverflowOperations
  2077  				}
  2078  				if iNdEx >= l {
  2079  					return io.ErrUnexpectedEOF
  2080  				}
  2081  				b := dAtA[iNdEx]
  2082  				iNdEx++
  2083  				msglen |= (int(b) & 0x7F) << shift
  2084  				if b < 0x80 {
  2085  					break
  2086  				}
  2087  			}
  2088  			if msglen < 0 {
  2089  				return ErrInvalidLengthOperations
  2090  			}
  2091  			postIndex := iNdEx + msglen
  2092  			if postIndex > l {
  2093  				return io.ErrUnexpectedEOF
  2094  			}
  2095  			m.Changes = append(m.Changes, roachpb.ReplicationChange{})
  2096  			if err := m.Changes[len(m.Changes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2097  				return err
  2098  			}
  2099  			iNdEx = postIndex
  2100  		case 3:
  2101  			if wireType != 2 {
  2102  				return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType)
  2103  			}
  2104  			var msglen int
  2105  			for shift := uint(0); ; shift += 7 {
  2106  				if shift >= 64 {
  2107  					return ErrIntOverflowOperations
  2108  				}
  2109  				if iNdEx >= l {
  2110  					return io.ErrUnexpectedEOF
  2111  				}
  2112  				b := dAtA[iNdEx]
  2113  				iNdEx++
  2114  				msglen |= (int(b) & 0x7F) << shift
  2115  				if b < 0x80 {
  2116  					break
  2117  				}
  2118  			}
  2119  			if msglen < 0 {
  2120  				return ErrInvalidLengthOperations
  2121  			}
  2122  			postIndex := iNdEx + msglen
  2123  			if postIndex > l {
  2124  				return io.ErrUnexpectedEOF
  2125  			}
  2126  			if err := m.Result.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2127  				return err
  2128  			}
  2129  			iNdEx = postIndex
  2130  		default:
  2131  			iNdEx = preIndex
  2132  			skippy, err := skipOperations(dAtA[iNdEx:])
  2133  			if err != nil {
  2134  				return err
  2135  			}
  2136  			if skippy < 0 {
  2137  				return ErrInvalidLengthOperations
  2138  			}
  2139  			if (iNdEx + skippy) > l {
  2140  				return io.ErrUnexpectedEOF
  2141  			}
  2142  			iNdEx += skippy
  2143  		}
  2144  	}
  2145  
  2146  	if iNdEx > l {
  2147  		return io.ErrUnexpectedEOF
  2148  	}
  2149  	return nil
  2150  }
  2151  func (m *Operation) Unmarshal(dAtA []byte) error {
  2152  	l := len(dAtA)
  2153  	iNdEx := 0
  2154  	for iNdEx < l {
  2155  		preIndex := iNdEx
  2156  		var wire uint64
  2157  		for shift := uint(0); ; shift += 7 {
  2158  			if shift >= 64 {
  2159  				return ErrIntOverflowOperations
  2160  			}
  2161  			if iNdEx >= l {
  2162  				return io.ErrUnexpectedEOF
  2163  			}
  2164  			b := dAtA[iNdEx]
  2165  			iNdEx++
  2166  			wire |= (uint64(b) & 0x7F) << shift
  2167  			if b < 0x80 {
  2168  				break
  2169  			}
  2170  		}
  2171  		fieldNum := int32(wire >> 3)
  2172  		wireType := int(wire & 0x7)
  2173  		if wireType == 4 {
  2174  			return fmt.Errorf("proto: Operation: wiretype end group for non-group")
  2175  		}
  2176  		if fieldNum <= 0 {
  2177  			return fmt.Errorf("proto: Operation: illegal tag %d (wire type %d)", fieldNum, wire)
  2178  		}
  2179  		switch fieldNum {
  2180  		case 1:
  2181  			if wireType != 2 {
  2182  				return fmt.Errorf("proto: wrong wireType = %d for field Batch", wireType)
  2183  			}
  2184  			var msglen int
  2185  			for shift := uint(0); ; shift += 7 {
  2186  				if shift >= 64 {
  2187  					return ErrIntOverflowOperations
  2188  				}
  2189  				if iNdEx >= l {
  2190  					return io.ErrUnexpectedEOF
  2191  				}
  2192  				b := dAtA[iNdEx]
  2193  				iNdEx++
  2194  				msglen |= (int(b) & 0x7F) << shift
  2195  				if b < 0x80 {
  2196  					break
  2197  				}
  2198  			}
  2199  			if msglen < 0 {
  2200  				return ErrInvalidLengthOperations
  2201  			}
  2202  			postIndex := iNdEx + msglen
  2203  			if postIndex > l {
  2204  				return io.ErrUnexpectedEOF
  2205  			}
  2206  			if m.Batch == nil {
  2207  				m.Batch = &BatchOperation{}
  2208  			}
  2209  			if err := m.Batch.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2210  				return err
  2211  			}
  2212  			iNdEx = postIndex
  2213  		case 2:
  2214  			if wireType != 2 {
  2215  				return fmt.Errorf("proto: wrong wireType = %d for field ClosureTxn", wireType)
  2216  			}
  2217  			var msglen int
  2218  			for shift := uint(0); ; shift += 7 {
  2219  				if shift >= 64 {
  2220  					return ErrIntOverflowOperations
  2221  				}
  2222  				if iNdEx >= l {
  2223  					return io.ErrUnexpectedEOF
  2224  				}
  2225  				b := dAtA[iNdEx]
  2226  				iNdEx++
  2227  				msglen |= (int(b) & 0x7F) << shift
  2228  				if b < 0x80 {
  2229  					break
  2230  				}
  2231  			}
  2232  			if msglen < 0 {
  2233  				return ErrInvalidLengthOperations
  2234  			}
  2235  			postIndex := iNdEx + msglen
  2236  			if postIndex > l {
  2237  				return io.ErrUnexpectedEOF
  2238  			}
  2239  			if m.ClosureTxn == nil {
  2240  				m.ClosureTxn = &ClosureTxnOperation{}
  2241  			}
  2242  			if err := m.ClosureTxn.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2243  				return err
  2244  			}
  2245  			iNdEx = postIndex
  2246  		case 7:
  2247  			if wireType != 2 {
  2248  				return fmt.Errorf("proto: wrong wireType = %d for field Get", wireType)
  2249  			}
  2250  			var msglen int
  2251  			for shift := uint(0); ; shift += 7 {
  2252  				if shift >= 64 {
  2253  					return ErrIntOverflowOperations
  2254  				}
  2255  				if iNdEx >= l {
  2256  					return io.ErrUnexpectedEOF
  2257  				}
  2258  				b := dAtA[iNdEx]
  2259  				iNdEx++
  2260  				msglen |= (int(b) & 0x7F) << shift
  2261  				if b < 0x80 {
  2262  					break
  2263  				}
  2264  			}
  2265  			if msglen < 0 {
  2266  				return ErrInvalidLengthOperations
  2267  			}
  2268  			postIndex := iNdEx + msglen
  2269  			if postIndex > l {
  2270  				return io.ErrUnexpectedEOF
  2271  			}
  2272  			if m.Get == nil {
  2273  				m.Get = &GetOperation{}
  2274  			}
  2275  			if err := m.Get.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2276  				return err
  2277  			}
  2278  			iNdEx = postIndex
  2279  		case 8:
  2280  			if wireType != 2 {
  2281  				return fmt.Errorf("proto: wrong wireType = %d for field Put", wireType)
  2282  			}
  2283  			var msglen int
  2284  			for shift := uint(0); ; shift += 7 {
  2285  				if shift >= 64 {
  2286  					return ErrIntOverflowOperations
  2287  				}
  2288  				if iNdEx >= l {
  2289  					return io.ErrUnexpectedEOF
  2290  				}
  2291  				b := dAtA[iNdEx]
  2292  				iNdEx++
  2293  				msglen |= (int(b) & 0x7F) << shift
  2294  				if b < 0x80 {
  2295  					break
  2296  				}
  2297  			}
  2298  			if msglen < 0 {
  2299  				return ErrInvalidLengthOperations
  2300  			}
  2301  			postIndex := iNdEx + msglen
  2302  			if postIndex > l {
  2303  				return io.ErrUnexpectedEOF
  2304  			}
  2305  			if m.Put == nil {
  2306  				m.Put = &PutOperation{}
  2307  			}
  2308  			if err := m.Put.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2309  				return err
  2310  			}
  2311  			iNdEx = postIndex
  2312  		case 9:
  2313  			if wireType != 2 {
  2314  				return fmt.Errorf("proto: wrong wireType = %d for field Split", wireType)
  2315  			}
  2316  			var msglen int
  2317  			for shift := uint(0); ; shift += 7 {
  2318  				if shift >= 64 {
  2319  					return ErrIntOverflowOperations
  2320  				}
  2321  				if iNdEx >= l {
  2322  					return io.ErrUnexpectedEOF
  2323  				}
  2324  				b := dAtA[iNdEx]
  2325  				iNdEx++
  2326  				msglen |= (int(b) & 0x7F) << shift
  2327  				if b < 0x80 {
  2328  					break
  2329  				}
  2330  			}
  2331  			if msglen < 0 {
  2332  				return ErrInvalidLengthOperations
  2333  			}
  2334  			postIndex := iNdEx + msglen
  2335  			if postIndex > l {
  2336  				return io.ErrUnexpectedEOF
  2337  			}
  2338  			if m.Split == nil {
  2339  				m.Split = &SplitOperation{}
  2340  			}
  2341  			if err := m.Split.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2342  				return err
  2343  			}
  2344  			iNdEx = postIndex
  2345  		case 10:
  2346  			if wireType != 2 {
  2347  				return fmt.Errorf("proto: wrong wireType = %d for field Merge", wireType)
  2348  			}
  2349  			var msglen int
  2350  			for shift := uint(0); ; shift += 7 {
  2351  				if shift >= 64 {
  2352  					return ErrIntOverflowOperations
  2353  				}
  2354  				if iNdEx >= l {
  2355  					return io.ErrUnexpectedEOF
  2356  				}
  2357  				b := dAtA[iNdEx]
  2358  				iNdEx++
  2359  				msglen |= (int(b) & 0x7F) << shift
  2360  				if b < 0x80 {
  2361  					break
  2362  				}
  2363  			}
  2364  			if msglen < 0 {
  2365  				return ErrInvalidLengthOperations
  2366  			}
  2367  			postIndex := iNdEx + msglen
  2368  			if postIndex > l {
  2369  				return io.ErrUnexpectedEOF
  2370  			}
  2371  			if m.Merge == nil {
  2372  				m.Merge = &MergeOperation{}
  2373  			}
  2374  			if err := m.Merge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2375  				return err
  2376  			}
  2377  			iNdEx = postIndex
  2378  		case 11:
  2379  			if wireType != 2 {
  2380  				return fmt.Errorf("proto: wrong wireType = %d for field ChangeReplicas", wireType)
  2381  			}
  2382  			var msglen int
  2383  			for shift := uint(0); ; shift += 7 {
  2384  				if shift >= 64 {
  2385  					return ErrIntOverflowOperations
  2386  				}
  2387  				if iNdEx >= l {
  2388  					return io.ErrUnexpectedEOF
  2389  				}
  2390  				b := dAtA[iNdEx]
  2391  				iNdEx++
  2392  				msglen |= (int(b) & 0x7F) << shift
  2393  				if b < 0x80 {
  2394  					break
  2395  				}
  2396  			}
  2397  			if msglen < 0 {
  2398  				return ErrInvalidLengthOperations
  2399  			}
  2400  			postIndex := iNdEx + msglen
  2401  			if postIndex > l {
  2402  				return io.ErrUnexpectedEOF
  2403  			}
  2404  			if m.ChangeReplicas == nil {
  2405  				m.ChangeReplicas = &ChangeReplicasOperation{}
  2406  			}
  2407  			if err := m.ChangeReplicas.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2408  				return err
  2409  			}
  2410  			iNdEx = postIndex
  2411  		default:
  2412  			iNdEx = preIndex
  2413  			skippy, err := skipOperations(dAtA[iNdEx:])
  2414  			if err != nil {
  2415  				return err
  2416  			}
  2417  			if skippy < 0 {
  2418  				return ErrInvalidLengthOperations
  2419  			}
  2420  			if (iNdEx + skippy) > l {
  2421  				return io.ErrUnexpectedEOF
  2422  			}
  2423  			iNdEx += skippy
  2424  		}
  2425  	}
  2426  
  2427  	if iNdEx > l {
  2428  		return io.ErrUnexpectedEOF
  2429  	}
  2430  	return nil
  2431  }
  2432  func (m *Result) Unmarshal(dAtA []byte) error {
  2433  	l := len(dAtA)
  2434  	iNdEx := 0
  2435  	for iNdEx < l {
  2436  		preIndex := iNdEx
  2437  		var wire uint64
  2438  		for shift := uint(0); ; shift += 7 {
  2439  			if shift >= 64 {
  2440  				return ErrIntOverflowOperations
  2441  			}
  2442  			if iNdEx >= l {
  2443  				return io.ErrUnexpectedEOF
  2444  			}
  2445  			b := dAtA[iNdEx]
  2446  			iNdEx++
  2447  			wire |= (uint64(b) & 0x7F) << shift
  2448  			if b < 0x80 {
  2449  				break
  2450  			}
  2451  		}
  2452  		fieldNum := int32(wire >> 3)
  2453  		wireType := int(wire & 0x7)
  2454  		if wireType == 4 {
  2455  			return fmt.Errorf("proto: Result: wiretype end group for non-group")
  2456  		}
  2457  		if fieldNum <= 0 {
  2458  			return fmt.Errorf("proto: Result: illegal tag %d (wire type %d)", fieldNum, wire)
  2459  		}
  2460  		switch fieldNum {
  2461  		case 1:
  2462  			if wireType != 0 {
  2463  				return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  2464  			}
  2465  			m.Type = 0
  2466  			for shift := uint(0); ; shift += 7 {
  2467  				if shift >= 64 {
  2468  					return ErrIntOverflowOperations
  2469  				}
  2470  				if iNdEx >= l {
  2471  					return io.ErrUnexpectedEOF
  2472  				}
  2473  				b := dAtA[iNdEx]
  2474  				iNdEx++
  2475  				m.Type |= (ResultType(b) & 0x7F) << shift
  2476  				if b < 0x80 {
  2477  					break
  2478  				}
  2479  			}
  2480  		case 2:
  2481  			if wireType != 2 {
  2482  				return fmt.Errorf("proto: wrong wireType = %d for field Err", wireType)
  2483  			}
  2484  			var msglen int
  2485  			for shift := uint(0); ; shift += 7 {
  2486  				if shift >= 64 {
  2487  					return ErrIntOverflowOperations
  2488  				}
  2489  				if iNdEx >= l {
  2490  					return io.ErrUnexpectedEOF
  2491  				}
  2492  				b := dAtA[iNdEx]
  2493  				iNdEx++
  2494  				msglen |= (int(b) & 0x7F) << shift
  2495  				if b < 0x80 {
  2496  					break
  2497  				}
  2498  			}
  2499  			if msglen < 0 {
  2500  				return ErrInvalidLengthOperations
  2501  			}
  2502  			postIndex := iNdEx + msglen
  2503  			if postIndex > l {
  2504  				return io.ErrUnexpectedEOF
  2505  			}
  2506  			if m.Err == nil {
  2507  				m.Err = &errorspb.EncodedError{}
  2508  			}
  2509  			if err := m.Err.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2510  				return err
  2511  			}
  2512  			iNdEx = postIndex
  2513  		case 3:
  2514  			if wireType != 2 {
  2515  				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
  2516  			}
  2517  			var byteLen int
  2518  			for shift := uint(0); ; shift += 7 {
  2519  				if shift >= 64 {
  2520  					return ErrIntOverflowOperations
  2521  				}
  2522  				if iNdEx >= l {
  2523  					return io.ErrUnexpectedEOF
  2524  				}
  2525  				b := dAtA[iNdEx]
  2526  				iNdEx++
  2527  				byteLen |= (int(b) & 0x7F) << shift
  2528  				if b < 0x80 {
  2529  					break
  2530  				}
  2531  			}
  2532  			if byteLen < 0 {
  2533  				return ErrInvalidLengthOperations
  2534  			}
  2535  			postIndex := iNdEx + byteLen
  2536  			if postIndex > l {
  2537  				return io.ErrUnexpectedEOF
  2538  			}
  2539  			m.Value = append(m.Value[:0], dAtA[iNdEx:postIndex]...)
  2540  			if m.Value == nil {
  2541  				m.Value = []byte{}
  2542  			}
  2543  			iNdEx = postIndex
  2544  		default:
  2545  			iNdEx = preIndex
  2546  			skippy, err := skipOperations(dAtA[iNdEx:])
  2547  			if err != nil {
  2548  				return err
  2549  			}
  2550  			if skippy < 0 {
  2551  				return ErrInvalidLengthOperations
  2552  			}
  2553  			if (iNdEx + skippy) > l {
  2554  				return io.ErrUnexpectedEOF
  2555  			}
  2556  			iNdEx += skippy
  2557  		}
  2558  	}
  2559  
  2560  	if iNdEx > l {
  2561  		return io.ErrUnexpectedEOF
  2562  	}
  2563  	return nil
  2564  }
  2565  func (m *Step) Unmarshal(dAtA []byte) error {
  2566  	l := len(dAtA)
  2567  	iNdEx := 0
  2568  	for iNdEx < l {
  2569  		preIndex := iNdEx
  2570  		var wire uint64
  2571  		for shift := uint(0); ; shift += 7 {
  2572  			if shift >= 64 {
  2573  				return ErrIntOverflowOperations
  2574  			}
  2575  			if iNdEx >= l {
  2576  				return io.ErrUnexpectedEOF
  2577  			}
  2578  			b := dAtA[iNdEx]
  2579  			iNdEx++
  2580  			wire |= (uint64(b) & 0x7F) << shift
  2581  			if b < 0x80 {
  2582  				break
  2583  			}
  2584  		}
  2585  		fieldNum := int32(wire >> 3)
  2586  		wireType := int(wire & 0x7)
  2587  		if wireType == 4 {
  2588  			return fmt.Errorf("proto: Step: wiretype end group for non-group")
  2589  		}
  2590  		if fieldNum <= 0 {
  2591  			return fmt.Errorf("proto: Step: illegal tag %d (wire type %d)", fieldNum, wire)
  2592  		}
  2593  		switch fieldNum {
  2594  		case 1:
  2595  			if wireType != 2 {
  2596  				return fmt.Errorf("proto: wrong wireType = %d for field Op", wireType)
  2597  			}
  2598  			var msglen int
  2599  			for shift := uint(0); ; shift += 7 {
  2600  				if shift >= 64 {
  2601  					return ErrIntOverflowOperations
  2602  				}
  2603  				if iNdEx >= l {
  2604  					return io.ErrUnexpectedEOF
  2605  				}
  2606  				b := dAtA[iNdEx]
  2607  				iNdEx++
  2608  				msglen |= (int(b) & 0x7F) << shift
  2609  				if b < 0x80 {
  2610  					break
  2611  				}
  2612  			}
  2613  			if msglen < 0 {
  2614  				return ErrInvalidLengthOperations
  2615  			}
  2616  			postIndex := iNdEx + msglen
  2617  			if postIndex > l {
  2618  				return io.ErrUnexpectedEOF
  2619  			}
  2620  			if err := m.Op.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2621  				return err
  2622  			}
  2623  			iNdEx = postIndex
  2624  		case 2:
  2625  			if wireType != 2 {
  2626  				return fmt.Errorf("proto: wrong wireType = %d for field Before", wireType)
  2627  			}
  2628  			var msglen int
  2629  			for shift := uint(0); ; shift += 7 {
  2630  				if shift >= 64 {
  2631  					return ErrIntOverflowOperations
  2632  				}
  2633  				if iNdEx >= l {
  2634  					return io.ErrUnexpectedEOF
  2635  				}
  2636  				b := dAtA[iNdEx]
  2637  				iNdEx++
  2638  				msglen |= (int(b) & 0x7F) << shift
  2639  				if b < 0x80 {
  2640  					break
  2641  				}
  2642  			}
  2643  			if msglen < 0 {
  2644  				return ErrInvalidLengthOperations
  2645  			}
  2646  			postIndex := iNdEx + msglen
  2647  			if postIndex > l {
  2648  				return io.ErrUnexpectedEOF
  2649  			}
  2650  			if err := m.Before.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2651  				return err
  2652  			}
  2653  			iNdEx = postIndex
  2654  		case 3:
  2655  			if wireType != 2 {
  2656  				return fmt.Errorf("proto: wrong wireType = %d for field After", wireType)
  2657  			}
  2658  			var msglen int
  2659  			for shift := uint(0); ; shift += 7 {
  2660  				if shift >= 64 {
  2661  					return ErrIntOverflowOperations
  2662  				}
  2663  				if iNdEx >= l {
  2664  					return io.ErrUnexpectedEOF
  2665  				}
  2666  				b := dAtA[iNdEx]
  2667  				iNdEx++
  2668  				msglen |= (int(b) & 0x7F) << shift
  2669  				if b < 0x80 {
  2670  					break
  2671  				}
  2672  			}
  2673  			if msglen < 0 {
  2674  				return ErrInvalidLengthOperations
  2675  			}
  2676  			postIndex := iNdEx + msglen
  2677  			if postIndex > l {
  2678  				return io.ErrUnexpectedEOF
  2679  			}
  2680  			if err := m.After.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2681  				return err
  2682  			}
  2683  			iNdEx = postIndex
  2684  		case 4:
  2685  			if wireType != 0 {
  2686  				return fmt.Errorf("proto: wrong wireType = %d for field DBID", wireType)
  2687  			}
  2688  			m.DBID = 0
  2689  			for shift := uint(0); ; shift += 7 {
  2690  				if shift >= 64 {
  2691  					return ErrIntOverflowOperations
  2692  				}
  2693  				if iNdEx >= l {
  2694  					return io.ErrUnexpectedEOF
  2695  				}
  2696  				b := dAtA[iNdEx]
  2697  				iNdEx++
  2698  				m.DBID |= (int32(b) & 0x7F) << shift
  2699  				if b < 0x80 {
  2700  					break
  2701  				}
  2702  			}
  2703  		case 5:
  2704  			if wireType != 2 {
  2705  				return fmt.Errorf("proto: wrong wireType = %d for field Trace", wireType)
  2706  			}
  2707  			var stringLen uint64
  2708  			for shift := uint(0); ; shift += 7 {
  2709  				if shift >= 64 {
  2710  					return ErrIntOverflowOperations
  2711  				}
  2712  				if iNdEx >= l {
  2713  					return io.ErrUnexpectedEOF
  2714  				}
  2715  				b := dAtA[iNdEx]
  2716  				iNdEx++
  2717  				stringLen |= (uint64(b) & 0x7F) << shift
  2718  				if b < 0x80 {
  2719  					break
  2720  				}
  2721  			}
  2722  			intStringLen := int(stringLen)
  2723  			if intStringLen < 0 {
  2724  				return ErrInvalidLengthOperations
  2725  			}
  2726  			postIndex := iNdEx + intStringLen
  2727  			if postIndex > l {
  2728  				return io.ErrUnexpectedEOF
  2729  			}
  2730  			m.Trace = string(dAtA[iNdEx:postIndex])
  2731  			iNdEx = postIndex
  2732  		default:
  2733  			iNdEx = preIndex
  2734  			skippy, err := skipOperations(dAtA[iNdEx:])
  2735  			if err != nil {
  2736  				return err
  2737  			}
  2738  			if skippy < 0 {
  2739  				return ErrInvalidLengthOperations
  2740  			}
  2741  			if (iNdEx + skippy) > l {
  2742  				return io.ErrUnexpectedEOF
  2743  			}
  2744  			iNdEx += skippy
  2745  		}
  2746  	}
  2747  
  2748  	if iNdEx > l {
  2749  		return io.ErrUnexpectedEOF
  2750  	}
  2751  	return nil
  2752  }
  2753  func skipOperations(dAtA []byte) (n int, err error) {
  2754  	l := len(dAtA)
  2755  	iNdEx := 0
  2756  	for iNdEx < l {
  2757  		var wire uint64
  2758  		for shift := uint(0); ; shift += 7 {
  2759  			if shift >= 64 {
  2760  				return 0, ErrIntOverflowOperations
  2761  			}
  2762  			if iNdEx >= l {
  2763  				return 0, io.ErrUnexpectedEOF
  2764  			}
  2765  			b := dAtA[iNdEx]
  2766  			iNdEx++
  2767  			wire |= (uint64(b) & 0x7F) << shift
  2768  			if b < 0x80 {
  2769  				break
  2770  			}
  2771  		}
  2772  		wireType := int(wire & 0x7)
  2773  		switch wireType {
  2774  		case 0:
  2775  			for shift := uint(0); ; shift += 7 {
  2776  				if shift >= 64 {
  2777  					return 0, ErrIntOverflowOperations
  2778  				}
  2779  				if iNdEx >= l {
  2780  					return 0, io.ErrUnexpectedEOF
  2781  				}
  2782  				iNdEx++
  2783  				if dAtA[iNdEx-1] < 0x80 {
  2784  					break
  2785  				}
  2786  			}
  2787  			return iNdEx, nil
  2788  		case 1:
  2789  			iNdEx += 8
  2790  			return iNdEx, nil
  2791  		case 2:
  2792  			var length int
  2793  			for shift := uint(0); ; shift += 7 {
  2794  				if shift >= 64 {
  2795  					return 0, ErrIntOverflowOperations
  2796  				}
  2797  				if iNdEx >= l {
  2798  					return 0, io.ErrUnexpectedEOF
  2799  				}
  2800  				b := dAtA[iNdEx]
  2801  				iNdEx++
  2802  				length |= (int(b) & 0x7F) << shift
  2803  				if b < 0x80 {
  2804  					break
  2805  				}
  2806  			}
  2807  			iNdEx += length
  2808  			if length < 0 {
  2809  				return 0, ErrInvalidLengthOperations
  2810  			}
  2811  			return iNdEx, nil
  2812  		case 3:
  2813  			for {
  2814  				var innerWire uint64
  2815  				var start int = iNdEx
  2816  				for shift := uint(0); ; shift += 7 {
  2817  					if shift >= 64 {
  2818  						return 0, ErrIntOverflowOperations
  2819  					}
  2820  					if iNdEx >= l {
  2821  						return 0, io.ErrUnexpectedEOF
  2822  					}
  2823  					b := dAtA[iNdEx]
  2824  					iNdEx++
  2825  					innerWire |= (uint64(b) & 0x7F) << shift
  2826  					if b < 0x80 {
  2827  						break
  2828  					}
  2829  				}
  2830  				innerWireType := int(innerWire & 0x7)
  2831  				if innerWireType == 4 {
  2832  					break
  2833  				}
  2834  				next, err := skipOperations(dAtA[start:])
  2835  				if err != nil {
  2836  					return 0, err
  2837  				}
  2838  				iNdEx = start + next
  2839  			}
  2840  			return iNdEx, nil
  2841  		case 4:
  2842  			return iNdEx, nil
  2843  		case 5:
  2844  			iNdEx += 4
  2845  			return iNdEx, nil
  2846  		default:
  2847  			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
  2848  		}
  2849  	}
  2850  	panic("unreachable")
  2851  }
  2852  
  2853  var (
  2854  	ErrInvalidLengthOperations = fmt.Errorf("proto: negative length found during unmarshaling")
  2855  	ErrIntOverflowOperations   = fmt.Errorf("proto: integer overflow")
  2856  )
  2857  
  2858  func init() {
  2859  	proto.RegisterFile("kv/kvnemesis/operations.proto", fileDescriptor_operations_a296c8d9789a3e0e)
  2860  }
  2861  
  2862  var fileDescriptor_operations_a296c8d9789a3e0e = []byte{
  2863  	// 853 bytes of a gzipped FileDescriptorProto
  2864  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0x4f, 0x8f, 0x1b, 0x35,
  2865  	0x14, 0x8f, 0x33, 0x99, 0xec, 0xe6, 0x25, 0xa4, 0xc1, 0x14, 0x18, 0x55, 0xda, 0x49, 0x88, 0x2a,
  2866  	0xb4, 0xda, 0x4a, 0x13, 0xb4, 0x48, 0x45, 0x5d, 0xf6, 0x94, 0xdd, 0x0a, 0x45, 0x82, 0x82, 0xdc,
  2867  	0x80, 0x10, 0x07, 0xd2, 0x89, 0xe3, 0x26, 0xa3, 0x4c, 0xc6, 0x23, 0x8f, 0xb3, 0x64, 0x3f, 0x02,
  2868  	0x9c, 0x38, 0x72, 0xec, 0x37, 0xe0, 0x6b, 0xec, 0xb1, 0xc7, 0x9e, 0x56, 0x90, 0x3d, 0x70, 0xe3,
  2869  	0xc0, 0x27, 0x40, 0xb6, 0x67, 0x36, 0x13, 0xb1, 0x09, 0xfd, 0xa3, 0xde, 0x6c, 0xcf, 0xfb, 0xfd,
  2870  	0xfc, 0xfc, 0xf3, 0xef, 0xf9, 0x0d, 0xec, 0x4d, 0xcf, 0x3a, 0xd3, 0xb3, 0x88, 0xcd, 0x58, 0x12,
  2871  	0x24, 0x1d, 0x1e, 0x33, 0xe1, 0xcb, 0x80, 0x47, 0x89, 0x17, 0x0b, 0x2e, 0x39, 0xfe, 0x80, 0x72,
  2872  	0x3a, 0x15, 0xdc, 0xa7, 0x13, 0x6f, 0x7a, 0xe6, 0x5d, 0x07, 0xde, 0x79, 0x9f, 0x09, 0xc1, 0x45,
  2873  	0x12, 0x0f, 0x3b, 0x66, 0x60, 0xc2, 0xef, 0xdc, 0x1e, 0xf3, 0x31, 0xd7, 0xc3, 0x8e, 0x1a, 0xa5,
  2874  	0xab, 0xef, 0x6a, 0x82, 0x78, 0xd8, 0xf1, 0xe3, 0x20, 0x5d, 0xc2, 0xd9, 0xd2, 0xc8, 0x97, 0x7e,
  2875  	0xba, 0xe6, 0xcc, 0x65, 0x10, 0x76, 0x26, 0x21, 0xed, 0xc8, 0x60, 0xc6, 0x12, 0xe9, 0xcf, 0x62,
  2876  	0xf3, 0xa5, 0xfd, 0x33, 0x82, 0x7a, 0xd7, 0x97, 0x74, 0xf2, 0x75, 0x96, 0x1f, 0x7e, 0x00, 0x16,
  2877  	0x8f, 0x13, 0x07, 0xb5, 0xac, 0xfd, 0xea, 0xe1, 0x47, 0xde, 0xcd, 0x69, 0x7a, 0xd7, 0xf1, 0xdd,
  2878  	0xd2, 0xc5, 0x65, 0xb3, 0x40, 0x14, 0x06, 0x1f, 0x43, 0x59, 0xb0, 0x64, 0x1e, 0x4a, 0xa7, 0xd8,
  2879  	0x42, 0xfb, 0xd5, 0x43, 0x77, 0x13, 0x9a, 0xe8, 0xa8, 0x14, 0x9a, 0x62, 0xda, 0x7f, 0x17, 0xe1,
  2880  	0xbd, 0x93, 0x90, 0x27, 0x73, 0xc1, 0xfa, 0x8b, 0x68, 0x95, 0x50, 0x0b, 0xca, 0x72, 0x11, 0x0d,
  2881  	0x82, 0x91, 0x83, 0x5a, 0x68, 0xbf, 0xd2, 0xad, 0x2c, 0x2f, 0x9b, 0x76, 0x7f, 0x11, 0xf5, 0x4e,
  2882  	0x89, 0x2d, 0x17, 0x51, 0x6f, 0x94, 0xa5, 0x5c, 0x7c, 0x8d, 0x94, 0x1f, 0xc1, 0x2d, 0xca, 0x67,
  2883  	0xb3, 0x40, 0x0e, 0x82, 0x68, 0x30, 0x54, 0x4a, 0x38, 0x96, 0xce, 0xfd, 0xe3, 0x4d, 0x34, 0xeb,
  2884  	0x72, 0x91, 0x77, 0x0c, 0xbc, 0x17, 0xe9, 0x75, 0x7c, 0x04, 0x25, 0x79, 0x1e, 0x33, 0xa7, 0xd4,
  2885  	0x42, 0xfb, 0xf5, 0xcd, 0x24, 0xab, 0x73, 0xf6, 0xcf, 0x63, 0x46, 0x34, 0x26, 0x27, 0x9f, 0xfd,
  2886  	0xea, 0xf2, 0xe1, 0x4f, 0xc0, 0x92, 0x8b, 0xc8, 0x29, 0xff, 0x07, 0x9a, 0x1a, 0xc2, 0xeb, 0x0b,
  2887  	0x3f, 0x4a, 0x7c, 0xaa, 0xb3, 0x56, 0xa1, 0xed, 0x1f, 0xa1, 0xf6, 0x05, 0x93, 0x2b, 0xa1, 0x1b,
  2888  	0x60, 0x4d, 0xd9, 0xb9, 0x56, 0xb9, 0x46, 0xd4, 0xf0, 0x0d, 0x2f, 0x54, 0x42, 0xed, 0x9b, 0xf9,
  2889  	0x56, 0xfe, 0xdb, 0x60, 0x9f, 0xf9, 0xe1, 0x9c, 0x69, 0xfa, 0x1a, 0x31, 0x93, 0xdc, 0xae, 0xd6,
  2890  	0x6b, 0xec, 0xfa, 0x04, 0xea, 0x8f, 0xe3, 0x30, 0x78, 0x8b, 0xe7, 0x7a, 0x02, 0xf5, 0xaf, 0x98,
  2891  	0x18, 0xb3, 0xb7, 0xb7, 0xc3, 0xef, 0x08, 0x3e, 0x3c, 0x99, 0xf8, 0xd1, 0x98, 0x11, 0x16, 0x87,
  2892  	0x01, 0xf5, 0x93, 0x6d, 0x7b, 0x9d, 0xc2, 0x0e, 0xd5, 0xc1, 0x59, 0x09, 0xdc, 0xbd, 0xe1, 0xf6,
  2893  	0x53, 0x22, 0x45, 0x61, 0x98, 0xd3, 0x2d, 0x33, 0xe8, 0x1b, 0xaa, 0xfe, 0x97, 0x05, 0x95, 0x55,
  2894  	0x8e, 0xc7, 0x60, 0x9b, 0x5a, 0x42, 0xaf, 0x54, 0x4b, 0x06, 0x84, 0xbf, 0x84, 0x2a, 0x35, 0xf5,
  2895  	0x31, 0x50, 0x8e, 0x36, 0x02, 0xde, 0xfb, 0xff, 0x52, 0x5a, 0x11, 0x01, 0xbd, 0x5e, 0xc4, 0xf7,
  2896  	0xc1, 0x1a, 0x33, 0xe9, 0xec, 0x68, 0x96, 0xbb, 0x9b, 0x58, 0xf2, 0x85, 0x40, 0x14, 0x40, 0xe1,
  2897  	0xe2, 0xb9, 0x74, 0x76, 0xb7, 0xe3, 0xf2, 0x06, 0x27, 0x0a, 0xa0, 0xce, 0x9e, 0x28, 0xff, 0x39,
  2898  	0x95, 0xed, 0x67, 0x5f, 0x37, 0x29, 0x31, 0x20, 0x85, 0x9e, 0x29, 0x6f, 0x39, 0xb0, 0x1d, 0xbd,
  2899  	0x6e, 0x40, 0x62, 0x40, 0xf8, 0x7b, 0xb8, 0x65, 0xae, 0x73, 0x20, 0x52, 0xdf, 0x38, 0x55, 0xcd,
  2900  	0xd3, 0xd9, 0xa8, 0xde, 0xcd, 0x2e, 0x23, 0x75, 0xba, 0xf6, 0xe1, 0x68, 0xf7, 0xb7, 0x67, 0xcd,
  2901  	0xc2, 0xc5, 0xb3, 0x26, 0x6a, 0xff, 0x82, 0xa0, 0x6c, 0x2c, 0x80, 0xef, 0xa7, 0x8f, 0x1d, 0xd2,
  2902  	0x8f, 0x5d, 0x7b, 0xbb, 0x61, 0x72, 0x0f, 0xdd, 0x21, 0x58, 0x4c, 0x88, 0xf4, 0x62, 0x5b, 0x39,
  2903  	0x58, 0xd6, 0xfb, 0xbc, 0x87, 0x11, 0xe5, 0x23, 0x36, 0x7a, 0xa8, 0xe6, 0x44, 0x05, 0xaf, 0x9e,
  2904  	0x0a, 0x2b, 0xf7, 0x54, 0xb4, 0xff, 0x41, 0x50, 0x7a, 0x2c, 0x59, 0x8c, 0x3f, 0x83, 0x22, 0x8f,
  2905  	0x53, 0xbb, 0xbd, 0x74, 0x07, 0x28, 0xf2, 0x18, 0x7f, 0x0e, 0xe5, 0x21, 0x7b, 0xca, 0x05, 0x4b,
  2906  	0xd3, 0xd9, 0xcb, 0x81, 0x55, 0xdb, 0xf4, 0x26, 0x21, 0xf5, 0xfa, 0x59, 0xdb, 0xcc, 0x5c, 0x6f,
  2907  	0x20, 0xf8, 0x01, 0xd8, 0xfe, 0x53, 0xc9, 0x44, 0x5a, 0x32, 0x2f, 0x85, 0x35, 0x08, 0xbc, 0x07,
  2908  	0xf6, 0x68, 0xa8, 0x9a, 0x9a, 0xea, 0x14, 0x76, 0x77, 0x77, 0x79, 0xd9, 0x2c, 0x9d, 0x76, 0x7b,
  2909  	0xa7, 0xa4, 0x34, 0x1a, 0xf6, 0x46, 0xea, 0xb8, 0x52, 0xf8, 0x94, 0xe9, 0x56, 0x50, 0x21, 0x66,
  2910  	0x72, 0x54, 0x52, 0xb7, 0x70, 0x70, 0x00, 0xf5, 0xf5, 0xfe, 0x81, 0x01, 0xca, 0x27, 0xba, 0x0d,
  2911  	0x35, 0x0a, 0xb8, 0x06, 0xbb, 0x84, 0x87, 0xe1, 0xd0, 0xa7, 0xd3, 0x06, 0x3a, 0x38, 0x06, 0x58,
  2912  	0xc9, 0x8f, 0xab, 0xb0, 0xf3, 0x6d, 0x34, 0x8d, 0xf8, 0x4f, 0x51, 0xa3, 0xa0, 0x26, 0x8f, 0xb8,
  2913  	0x56, 0xb8, 0x81, 0x70, 0x05, 0x6c, 0x33, 0x2c, 0xaa, 0xe1, 0x77, 0x4a, 0xdc, 0x86, 0xd5, 0xbd,
  2914  	0x77, 0xf1, 0xa7, 0x5b, 0xb8, 0x58, 0xba, 0xe8, 0xf9, 0xd2, 0x45, 0x2f, 0x96, 0x2e, 0xfa, 0x63,
  2915  	0xe9, 0xa2, 0x5f, 0xaf, 0xdc, 0xc2, 0xf3, 0x2b, 0xb7, 0xf0, 0xe2, 0xca, 0x2d, 0xfc, 0x50, 0xb9,
  2916  	0x56, 0x77, 0x58, 0xd6, 0xbf, 0x14, 0x9f, 0xfe, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xe2, 0xd9, 0x85,
  2917  	0xe3, 0xf9, 0x08, 0x00, 0x00,
  2918  }