func (s *OortGroupStore) StreamWrite(stream groupproto.GroupStore_StreamWriteServer) error { var resp groupproto.WriteResponse for { req, err := stream.Recv() if err == io.EOF { return nil } if err != nil { return err } resp.Reset() resp.Rpcid = req.Rpcid resp.TimestampMicro, err = s.gs.Write(stream.Context(), req.KeyA, req.KeyB, req.ChildKeyA, req.ChildKeyB, req.TimestampMicro, req.Value) if err != nil { resp.Err = proto.TranslateError(err) } if err := stream.Send(&resp); err != nil { return err } } }