message: Group stream id for stream frame read/write structs
  Summary: Group stream id for stream frame read/write structs
diff: @@ -329,6 +329,7 @@ struct ReadNewTokenFrame {
  */
  struct WriteStreamFrame {
  StreamId streamId;
  + folly::Optional<StreamGroupId> streamGroupId;
  uint64_t offset;
  uint64_t len;
  bool fin;
  @@ -342,8 +343,10 @@ struct WriteStreamFrame {
  uint64_t offsetIn,
  uint64_t lenIn,
  bool finIn,
  - bool fromBufMetaIn = false)
  + bool fromBufMetaIn = false,
  + folly::Optional<StreamGroupId> streamGroupIdIn = folly::none)
  : streamId(streamIdIn),
  + streamGroupId(streamGroupIdIn),
  offset(offsetIn),
  len(lenIn),
  fin(finIn),
  @@ -351,7 +354,8 @@ struct WriteStreamFrame {
  bool operator==(const WriteStreamFrame& rhs) const {
  return streamId == rhs.streamId && offset == rhs.offset && len == rhs.len &&
  - fin == rhs.fin && fromBufMeta == rhs.fromBufMeta;
  + fin == rhs.fin && fromBufMeta == rhs.fromBufMeta &&
  + streamGroupId == rhs.streamGroupId;
  }
  };
  @@ -360,6 +364,7 @@ struct WriteStreamFrame {
  */
  struct ReadStreamFrame {
  StreamId streamId;
  + folly::Optional<StreamGroupId> streamGroupId;
  uint64_t offset;
  Buf data;
  bool fin;
  @@ -368,14 +373,21 @@ struct ReadStreamFrame {
  StreamId streamIdIn,
  uint64_t offsetIn,
  Buf dataIn,
  - bool finIn)
  + bool finIn,
  + folly::Optional<StreamGroupId> streamGroupIdIn = folly::none)
  : streamId(streamIdIn),
  + streamGroupId(streamGroupIdIn),
  offset(offsetIn),
  data(std::move(dataIn)),
  fin(finIn) {}
  - ReadStreamFrame(StreamId streamIdIn, uint64_t offsetIn, bool finIn)
  + ReadStreamFrame(
  + StreamId streamIdIn,
  + uint64_t offsetIn,
  + bool finIn,
  + folly::Optional<StreamGroupId> streamGroupIdIn = folly::none)
  : streamId(streamIdIn),
  + streamGroupId(streamGroupIdIn),
  offset(offsetIn),
  data(folly::IOBuf::create(0)),
  fin(finIn) {}
  @@ -388,6 +400,7 @@ struct ReadStreamFrame {
  data = other.data->clone();
  }
  fin = other.fin;
  + streamGroupId = other.streamGroupId;
  }
  ReadStreamFrame(ReadStreamFrame&& other) noexcept {
  @@ -395,6 +408,7 @@ struct ReadStreamFrame {
  offset = other.offset;
  data = std::move(other.data);
  fin = other.fin;
  + streamGroupId = other.streamGroupId;
  }
  ReadStreamFrame& operator=(const ReadStreamFrame& other) {
  @@ -404,6 +418,7 @@ struct ReadStreamFrame {
  data = other.data->clone();
  }
  fin = other.fin;
  + streamGroupId = other.streamGroupId;
  return *this;
  }
  @@ -412,13 +427,15 @@ struct ReadStreamFrame {
  offset = other.offset;
  data = std::move(other.data);
  fin = other.fin;
  + streamGroupId = other.streamGroupId;
  return *this;
  }
  bool operator==(const ReadStreamFrame& other) const {
  folly::IOBufEqualTo eq;
  return streamId == other.streamId && offset == other.offset &&
  - fin == other.fin && eq(data, other.data);
  + fin == other.fin && eq(data, other.data) &&
  + streamGroupId == other.streamGroupId;
  }
  };
  