mvcc/watchable_store.go
func kvsToEvents(lg *zap.Logger, wg *watcherGroup, revs, vals [][]byte) (evs []mvccpb.Event) {
	for i, v := range vals {
		var kv mvccpb.KeyValue
		if err := kv.Unmarshal(v); err != nil {
			if lg != nil {
				lg.Panic("failed to unmarshal mvccpb.KeyValue", zap.Error(err))
			} else {
				plog.Panicf("cannot unmarshal event: %v", err)
			}
		}

		if !wg.contains(string(kv.Key)) {
			continue
		}

		ty := mvccpb.PUT
		if isTombstone(revs[i]) {
			ty = mvccpb.DELETE
			// patch in mod revision so watchers won't skip
			kv.ModRevision = bytesToRev(revs[i]).main
		}
		evs = append(evs, mvccpb.Event{Kv: &kv, Type: ty})
	}
	return evs
}
func kvsToEvents(lg *zap.Logger, wg *watcherGroup, revs, vals [][]byte) (evs []mvccpb.Event) {
	for i, v := range vals {
		var kv mvccpb.KeyValue
		if err := kv.Unmarshal(v); err != nil {
			if lg != nil {
				lg.Panic("failed to unmarshal mvccpb.KeyValue", zap.Error(err))
			} else {
				plog.Panicf("cannot unmarshal event: %v", err)
			}
		}

		if !wg.contains(string(kv.Key)) {
			continue
		}

		ty := mvccpb.PUT
		if isTombstone(revs[i]) {
			ty = mvccpb.DELETE
			// patch in mod revision so watchers won't skip
			kv.ModRevision = bytesToRev(revs[i]).main
		}
		evs = append(evs, mvccpb.Event{Kv: &kv, Type: ty})
	}
	return evs
}
func kvsToEvents ( lg * zap . Logger , wg * watcherGroup , revs , vals [ ] [ ] byte ) ( evs [ ] mvccpb . Event ) { for i , v := range vals { var kv mvccpb . KeyValue if err := kv . Unmarshal ( v ) ; err != nil { if lg != nil { lg . Panic ( " " , zap . Error ( err ) ) } else { plog . Panicf ( " " , err ) } } if ! wg . contains ( string ( kv . Key ) ) { continue } ty := mvccpb . PUT if isTombstone ( revs [ i ] ) { ty = mvccpb . DELETE // patch in mod revision so watchers won't skip kv . ModRevision = bytesToRev ( revs [ i ] ) . main } evs = append ( evs , mvccpb . Event { Kv : & kv , Type : ty } ) } return evs }
// kvsToEvents gets all events for the watchers from all key-value pairs
kvsToEvents gets all events for the watchers from all key - value pairs