github.com/ydb-platform/ydb-go-sdk/v3@v3.89.2/internal/grpcwrapper/rawtopic/update_offset_in_transaction.go (about) 1 package rawtopic 2 3 import ( 4 "github.com/ydb-platform/ydb-go-genproto/protos/Ydb_Topic" 5 6 "github.com/ydb-platform/ydb-go-sdk/v3/internal/grpcwrapper/rawtopic/rawtopiccommon" 7 "github.com/ydb-platform/ydb-go-sdk/v3/internal/grpcwrapper/rawydb" 8 ) 9 10 type UpdateOffsetsInTransactionRequest struct { 11 OperationParams rawydb.OperationParams 12 Tx rawtopiccommon.TransactionIdentity 13 Topics []UpdateOffsetsInTransactionRequest_TopicOffsets 14 Consumer string 15 } 16 17 func (r *UpdateOffsetsInTransactionRequest) ToProto() *Ydb_Topic.UpdateOffsetsInTransactionRequest { 18 req := &Ydb_Topic.UpdateOffsetsInTransactionRequest{ 19 OperationParams: r.OperationParams.ToProto(), 20 Tx: r.Tx.ToProto(), 21 Consumer: r.Consumer, 22 } 23 24 req.Topics = make([]*Ydb_Topic.UpdateOffsetsInTransactionRequest_TopicOffsets, len(r.Topics)) 25 for topicIndex := range r.Topics { 26 topic := &r.Topics[topicIndex] 27 offsets := &Ydb_Topic.UpdateOffsetsInTransactionRequest_TopicOffsets{ 28 Path: topic.Path, 29 } 30 31 offsets.Partitions = make( 32 []*Ydb_Topic.UpdateOffsetsInTransactionRequest_TopicOffsets_PartitionOffsets, 33 len(topic.Partitions), 34 ) 35 for partitionIndex := range topic.Partitions { 36 partition := &topic.Partitions[partitionIndex] 37 protoPartition := &Ydb_Topic.UpdateOffsetsInTransactionRequest_TopicOffsets_PartitionOffsets{ 38 PartitionId: partition.PartitionID, 39 } 40 41 protoPartition.PartitionOffsets = make([]*Ydb_Topic.OffsetsRange, len(partition.PartitionOffsets)) 42 43 for offsetIndex, offset := range partition.PartitionOffsets { 44 protoPartition.PartitionOffsets[offsetIndex] = offset.ToProto() 45 } 46 47 offsets.Partitions[partitionIndex] = protoPartition 48 } 49 50 req.Topics[topicIndex] = offsets 51 } 52 53 return req 54 } 55 56 type UpdateOffsetsInTransactionRequest_TopicOffsets struct { //nolint:revive,stylecheck 57 Path string // Topic path 58 Partitions []UpdateOffsetsInTransactionRequest_PartitionOffsets 59 } 60 61 type UpdateOffsetsInTransactionRequest_PartitionOffsets struct { //nolint:revive,stylecheck 62 PartitionID int64 63 PartitionOffsets []rawtopiccommon.OffsetRange 64 }