github.com/ydb-platform/ydb-go-sdk/v3@v3.89.2/trace/topic_gtrace.go (about)

     1  // Code generated by gtrace. DO NOT EDIT.
     2  
     3  package trace
     4  
     5  import (
     6  	"context"
     7  )
     8  
     9  // topicComposeOptions is a holder of options
    10  type topicComposeOptions struct {
    11  	panicCallback func(e interface{})
    12  }
    13  
    14  // TopicOption specified Topic compose option
    15  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
    16  type TopicComposeOption func(o *topicComposeOptions)
    17  
    18  // WithTopicPanicCallback specified behavior on panic
    19  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
    20  func WithTopicPanicCallback(cb func(e interface{})) TopicComposeOption {
    21  	return func(o *topicComposeOptions) {
    22  		o.panicCallback = cb
    23  	}
    24  }
    25  
    26  // Compose returns a new Topic which has functional fields composed both from t and x.
    27  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
    28  func (t *Topic) Compose(x *Topic, opts ...TopicComposeOption) *Topic {
    29  	if t == nil {
    30  		return x
    31  	}
    32  	var ret Topic
    33  	options := topicComposeOptions{}
    34  	for _, opt := range opts {
    35  		if opt != nil {
    36  			opt(&options)
    37  		}
    38  	}
    39  	{
    40  		h1 := t.OnReaderStart
    41  		h2 := x.OnReaderStart
    42  		ret.OnReaderStart = func(info TopicReaderStartInfo) {
    43  			if options.panicCallback != nil {
    44  				defer func() {
    45  					if e := recover(); e != nil {
    46  						options.panicCallback(e)
    47  					}
    48  				}()
    49  			}
    50  			if h1 != nil {
    51  				h1(info)
    52  			}
    53  			if h2 != nil {
    54  				h2(info)
    55  			}
    56  		}
    57  	}
    58  	{
    59  		h1 := t.OnReaderReconnect
    60  		h2 := x.OnReaderReconnect
    61  		ret.OnReaderReconnect = func(t TopicReaderReconnectStartInfo) func(TopicReaderReconnectDoneInfo) {
    62  			if options.panicCallback != nil {
    63  				defer func() {
    64  					if e := recover(); e != nil {
    65  						options.panicCallback(e)
    66  					}
    67  				}()
    68  			}
    69  			var r, r1 func(TopicReaderReconnectDoneInfo)
    70  			if h1 != nil {
    71  				r = h1(t)
    72  			}
    73  			if h2 != nil {
    74  				r1 = h2(t)
    75  			}
    76  			return func(t TopicReaderReconnectDoneInfo) {
    77  				if options.panicCallback != nil {
    78  					defer func() {
    79  						if e := recover(); e != nil {
    80  							options.panicCallback(e)
    81  						}
    82  					}()
    83  				}
    84  				if r != nil {
    85  					r(t)
    86  				}
    87  				if r1 != nil {
    88  					r1(t)
    89  				}
    90  			}
    91  		}
    92  	}
    93  	{
    94  		h1 := t.OnReaderReconnectRequest
    95  		h2 := x.OnReaderReconnectRequest
    96  		ret.OnReaderReconnectRequest = func(t TopicReaderReconnectRequestInfo) {
    97  			if options.panicCallback != nil {
    98  				defer func() {
    99  					if e := recover(); e != nil {
   100  						options.panicCallback(e)
   101  					}
   102  				}()
   103  			}
   104  			if h1 != nil {
   105  				h1(t)
   106  			}
   107  			if h2 != nil {
   108  				h2(t)
   109  			}
   110  		}
   111  	}
   112  	{
   113  		h1 := t.OnReaderPartitionReadStartResponse
   114  		h2 := x.OnReaderPartitionReadStartResponse
   115  		ret.OnReaderPartitionReadStartResponse = func(t TopicReaderPartitionReadStartResponseStartInfo) func(TopicReaderPartitionReadStartResponseDoneInfo) {
   116  			if options.panicCallback != nil {
   117  				defer func() {
   118  					if e := recover(); e != nil {
   119  						options.panicCallback(e)
   120  					}
   121  				}()
   122  			}
   123  			var r, r1 func(TopicReaderPartitionReadStartResponseDoneInfo)
   124  			if h1 != nil {
   125  				r = h1(t)
   126  			}
   127  			if h2 != nil {
   128  				r1 = h2(t)
   129  			}
   130  			return func(t TopicReaderPartitionReadStartResponseDoneInfo) {
   131  				if options.panicCallback != nil {
   132  					defer func() {
   133  						if e := recover(); e != nil {
   134  							options.panicCallback(e)
   135  						}
   136  					}()
   137  				}
   138  				if r != nil {
   139  					r(t)
   140  				}
   141  				if r1 != nil {
   142  					r1(t)
   143  				}
   144  			}
   145  		}
   146  	}
   147  	{
   148  		h1 := t.OnReaderPartitionReadStopResponse
   149  		h2 := x.OnReaderPartitionReadStopResponse
   150  		ret.OnReaderPartitionReadStopResponse = func(t TopicReaderPartitionReadStopResponseStartInfo) func(TopicReaderPartitionReadStopResponseDoneInfo) {
   151  			if options.panicCallback != nil {
   152  				defer func() {
   153  					if e := recover(); e != nil {
   154  						options.panicCallback(e)
   155  					}
   156  				}()
   157  			}
   158  			var r, r1 func(TopicReaderPartitionReadStopResponseDoneInfo)
   159  			if h1 != nil {
   160  				r = h1(t)
   161  			}
   162  			if h2 != nil {
   163  				r1 = h2(t)
   164  			}
   165  			return func(t TopicReaderPartitionReadStopResponseDoneInfo) {
   166  				if options.panicCallback != nil {
   167  					defer func() {
   168  						if e := recover(); e != nil {
   169  							options.panicCallback(e)
   170  						}
   171  					}()
   172  				}
   173  				if r != nil {
   174  					r(t)
   175  				}
   176  				if r1 != nil {
   177  					r1(t)
   178  				}
   179  			}
   180  		}
   181  	}
   182  	{
   183  		h1 := t.OnReaderCommit
   184  		h2 := x.OnReaderCommit
   185  		ret.OnReaderCommit = func(t TopicReaderCommitStartInfo) func(TopicReaderCommitDoneInfo) {
   186  			if options.panicCallback != nil {
   187  				defer func() {
   188  					if e := recover(); e != nil {
   189  						options.panicCallback(e)
   190  					}
   191  				}()
   192  			}
   193  			var r, r1 func(TopicReaderCommitDoneInfo)
   194  			if h1 != nil {
   195  				r = h1(t)
   196  			}
   197  			if h2 != nil {
   198  				r1 = h2(t)
   199  			}
   200  			return func(t TopicReaderCommitDoneInfo) {
   201  				if options.panicCallback != nil {
   202  					defer func() {
   203  						if e := recover(); e != nil {
   204  							options.panicCallback(e)
   205  						}
   206  					}()
   207  				}
   208  				if r != nil {
   209  					r(t)
   210  				}
   211  				if r1 != nil {
   212  					r1(t)
   213  				}
   214  			}
   215  		}
   216  	}
   217  	{
   218  		h1 := t.OnReaderSendCommitMessage
   219  		h2 := x.OnReaderSendCommitMessage
   220  		ret.OnReaderSendCommitMessage = func(t TopicReaderSendCommitMessageStartInfo) func(TopicReaderSendCommitMessageDoneInfo) {
   221  			if options.panicCallback != nil {
   222  				defer func() {
   223  					if e := recover(); e != nil {
   224  						options.panicCallback(e)
   225  					}
   226  				}()
   227  			}
   228  			var r, r1 func(TopicReaderSendCommitMessageDoneInfo)
   229  			if h1 != nil {
   230  				r = h1(t)
   231  			}
   232  			if h2 != nil {
   233  				r1 = h2(t)
   234  			}
   235  			return func(t TopicReaderSendCommitMessageDoneInfo) {
   236  				if options.panicCallback != nil {
   237  					defer func() {
   238  						if e := recover(); e != nil {
   239  							options.panicCallback(e)
   240  						}
   241  					}()
   242  				}
   243  				if r != nil {
   244  					r(t)
   245  				}
   246  				if r1 != nil {
   247  					r1(t)
   248  				}
   249  			}
   250  		}
   251  	}
   252  	{
   253  		h1 := t.OnReaderCommittedNotify
   254  		h2 := x.OnReaderCommittedNotify
   255  		ret.OnReaderCommittedNotify = func(t TopicReaderCommittedNotifyInfo) {
   256  			if options.panicCallback != nil {
   257  				defer func() {
   258  					if e := recover(); e != nil {
   259  						options.panicCallback(e)
   260  					}
   261  				}()
   262  			}
   263  			if h1 != nil {
   264  				h1(t)
   265  			}
   266  			if h2 != nil {
   267  				h2(t)
   268  			}
   269  		}
   270  	}
   271  	{
   272  		h1 := t.OnReaderClose
   273  		h2 := x.OnReaderClose
   274  		ret.OnReaderClose = func(t TopicReaderCloseStartInfo) func(TopicReaderCloseDoneInfo) {
   275  			if options.panicCallback != nil {
   276  				defer func() {
   277  					if e := recover(); e != nil {
   278  						options.panicCallback(e)
   279  					}
   280  				}()
   281  			}
   282  			var r, r1 func(TopicReaderCloseDoneInfo)
   283  			if h1 != nil {
   284  				r = h1(t)
   285  			}
   286  			if h2 != nil {
   287  				r1 = h2(t)
   288  			}
   289  			return func(t TopicReaderCloseDoneInfo) {
   290  				if options.panicCallback != nil {
   291  					defer func() {
   292  						if e := recover(); e != nil {
   293  							options.panicCallback(e)
   294  						}
   295  					}()
   296  				}
   297  				if r != nil {
   298  					r(t)
   299  				}
   300  				if r1 != nil {
   301  					r1(t)
   302  				}
   303  			}
   304  		}
   305  	}
   306  	{
   307  		h1 := t.OnReaderInit
   308  		h2 := x.OnReaderInit
   309  		ret.OnReaderInit = func(t TopicReaderInitStartInfo) func(TopicReaderInitDoneInfo) {
   310  			if options.panicCallback != nil {
   311  				defer func() {
   312  					if e := recover(); e != nil {
   313  						options.panicCallback(e)
   314  					}
   315  				}()
   316  			}
   317  			var r, r1 func(TopicReaderInitDoneInfo)
   318  			if h1 != nil {
   319  				r = h1(t)
   320  			}
   321  			if h2 != nil {
   322  				r1 = h2(t)
   323  			}
   324  			return func(t TopicReaderInitDoneInfo) {
   325  				if options.panicCallback != nil {
   326  					defer func() {
   327  						if e := recover(); e != nil {
   328  							options.panicCallback(e)
   329  						}
   330  					}()
   331  				}
   332  				if r != nil {
   333  					r(t)
   334  				}
   335  				if r1 != nil {
   336  					r1(t)
   337  				}
   338  			}
   339  		}
   340  	}
   341  	{
   342  		h1 := t.OnReaderError
   343  		h2 := x.OnReaderError
   344  		ret.OnReaderError = func(t TopicReaderErrorInfo) {
   345  			if options.panicCallback != nil {
   346  				defer func() {
   347  					if e := recover(); e != nil {
   348  						options.panicCallback(e)
   349  					}
   350  				}()
   351  			}
   352  			if h1 != nil {
   353  				h1(t)
   354  			}
   355  			if h2 != nil {
   356  				h2(t)
   357  			}
   358  		}
   359  	}
   360  	{
   361  		h1 := t.OnReaderUpdateToken
   362  		h2 := x.OnReaderUpdateToken
   363  		ret.OnReaderUpdateToken = func(o OnReadUpdateTokenStartInfo) func(OnReadUpdateTokenMiddleTokenReceivedInfo) func(OnReadStreamUpdateTokenDoneInfo) {
   364  			if options.panicCallback != nil {
   365  				defer func() {
   366  					if e := recover(); e != nil {
   367  						options.panicCallback(e)
   368  					}
   369  				}()
   370  			}
   371  			var r, r1 func(OnReadUpdateTokenMiddleTokenReceivedInfo) func(OnReadStreamUpdateTokenDoneInfo)
   372  			if h1 != nil {
   373  				r = h1(o)
   374  			}
   375  			if h2 != nil {
   376  				r1 = h2(o)
   377  			}
   378  			return func(o OnReadUpdateTokenMiddleTokenReceivedInfo) func(OnReadStreamUpdateTokenDoneInfo) {
   379  				if options.panicCallback != nil {
   380  					defer func() {
   381  						if e := recover(); e != nil {
   382  							options.panicCallback(e)
   383  						}
   384  					}()
   385  				}
   386  				var r2, r3 func(OnReadStreamUpdateTokenDoneInfo)
   387  				if r != nil {
   388  					r2 = r(o)
   389  				}
   390  				if r1 != nil {
   391  					r3 = r1(o)
   392  				}
   393  				return func(o OnReadStreamUpdateTokenDoneInfo) {
   394  					if options.panicCallback != nil {
   395  						defer func() {
   396  							if e := recover(); e != nil {
   397  								options.panicCallback(e)
   398  							}
   399  						}()
   400  					}
   401  					if r2 != nil {
   402  						r2(o)
   403  					}
   404  					if r3 != nil {
   405  						r3(o)
   406  					}
   407  				}
   408  			}
   409  		}
   410  	}
   411  	{
   412  		h1 := t.OnReaderPopBatchTx
   413  		h2 := x.OnReaderPopBatchTx
   414  		ret.OnReaderPopBatchTx = func(t TopicReaderPopBatchTxStartInfo) func(TopicReaderPopBatchTxDoneInfo) {
   415  			if options.panicCallback != nil {
   416  				defer func() {
   417  					if e := recover(); e != nil {
   418  						options.panicCallback(e)
   419  					}
   420  				}()
   421  			}
   422  			var r, r1 func(TopicReaderPopBatchTxDoneInfo)
   423  			if h1 != nil {
   424  				r = h1(t)
   425  			}
   426  			if h2 != nil {
   427  				r1 = h2(t)
   428  			}
   429  			return func(t TopicReaderPopBatchTxDoneInfo) {
   430  				if options.panicCallback != nil {
   431  					defer func() {
   432  						if e := recover(); e != nil {
   433  							options.panicCallback(e)
   434  						}
   435  					}()
   436  				}
   437  				if r != nil {
   438  					r(t)
   439  				}
   440  				if r1 != nil {
   441  					r1(t)
   442  				}
   443  			}
   444  		}
   445  	}
   446  	{
   447  		h1 := t.OnReaderStreamPopBatchTx
   448  		h2 := x.OnReaderStreamPopBatchTx
   449  		ret.OnReaderStreamPopBatchTx = func(t TopicReaderStreamPopBatchTxStartInfo) func(TopicReaderStreamPopBatchTxDoneInfo) {
   450  			if options.panicCallback != nil {
   451  				defer func() {
   452  					if e := recover(); e != nil {
   453  						options.panicCallback(e)
   454  					}
   455  				}()
   456  			}
   457  			var r, r1 func(TopicReaderStreamPopBatchTxDoneInfo)
   458  			if h1 != nil {
   459  				r = h1(t)
   460  			}
   461  			if h2 != nil {
   462  				r1 = h2(t)
   463  			}
   464  			return func(t TopicReaderStreamPopBatchTxDoneInfo) {
   465  				if options.panicCallback != nil {
   466  					defer func() {
   467  						if e := recover(); e != nil {
   468  							options.panicCallback(e)
   469  						}
   470  					}()
   471  				}
   472  				if r != nil {
   473  					r(t)
   474  				}
   475  				if r1 != nil {
   476  					r1(t)
   477  				}
   478  			}
   479  		}
   480  	}
   481  	{
   482  		h1 := t.OnReaderUpdateOffsetsInTransaction
   483  		h2 := x.OnReaderUpdateOffsetsInTransaction
   484  		ret.OnReaderUpdateOffsetsInTransaction = func(t TopicReaderOnUpdateOffsetsInTransactionStartInfo) func(TopicReaderOnUpdateOffsetsInTransactionDoneInfo) {
   485  			if options.panicCallback != nil {
   486  				defer func() {
   487  					if e := recover(); e != nil {
   488  						options.panicCallback(e)
   489  					}
   490  				}()
   491  			}
   492  			var r, r1 func(TopicReaderOnUpdateOffsetsInTransactionDoneInfo)
   493  			if h1 != nil {
   494  				r = h1(t)
   495  			}
   496  			if h2 != nil {
   497  				r1 = h2(t)
   498  			}
   499  			return func(t TopicReaderOnUpdateOffsetsInTransactionDoneInfo) {
   500  				if options.panicCallback != nil {
   501  					defer func() {
   502  						if e := recover(); e != nil {
   503  							options.panicCallback(e)
   504  						}
   505  					}()
   506  				}
   507  				if r != nil {
   508  					r(t)
   509  				}
   510  				if r1 != nil {
   511  					r1(t)
   512  				}
   513  			}
   514  		}
   515  	}
   516  	{
   517  		h1 := t.OnReaderTransactionCompleted
   518  		h2 := x.OnReaderTransactionCompleted
   519  		ret.OnReaderTransactionCompleted = func(t TopicReaderTransactionCompletedStartInfo) func(TopicReaderTransactionCompletedDoneInfo) {
   520  			if options.panicCallback != nil {
   521  				defer func() {
   522  					if e := recover(); e != nil {
   523  						options.panicCallback(e)
   524  					}
   525  				}()
   526  			}
   527  			var r, r1 func(TopicReaderTransactionCompletedDoneInfo)
   528  			if h1 != nil {
   529  				r = h1(t)
   530  			}
   531  			if h2 != nil {
   532  				r1 = h2(t)
   533  			}
   534  			return func(t TopicReaderTransactionCompletedDoneInfo) {
   535  				if options.panicCallback != nil {
   536  					defer func() {
   537  						if e := recover(); e != nil {
   538  							options.panicCallback(e)
   539  						}
   540  					}()
   541  				}
   542  				if r != nil {
   543  					r(t)
   544  				}
   545  				if r1 != nil {
   546  					r1(t)
   547  				}
   548  			}
   549  		}
   550  	}
   551  	{
   552  		h1 := t.OnReaderTransactionRollback
   553  		h2 := x.OnReaderTransactionRollback
   554  		ret.OnReaderTransactionRollback = func(t TopicReaderTransactionRollbackStartInfo) func(TopicReaderTransactionRollbackDoneInfo) {
   555  			if options.panicCallback != nil {
   556  				defer func() {
   557  					if e := recover(); e != nil {
   558  						options.panicCallback(e)
   559  					}
   560  				}()
   561  			}
   562  			var r, r1 func(TopicReaderTransactionRollbackDoneInfo)
   563  			if h1 != nil {
   564  				r = h1(t)
   565  			}
   566  			if h2 != nil {
   567  				r1 = h2(t)
   568  			}
   569  			return func(t TopicReaderTransactionRollbackDoneInfo) {
   570  				if options.panicCallback != nil {
   571  					defer func() {
   572  						if e := recover(); e != nil {
   573  							options.panicCallback(e)
   574  						}
   575  					}()
   576  				}
   577  				if r != nil {
   578  					r(t)
   579  				}
   580  				if r1 != nil {
   581  					r1(t)
   582  				}
   583  			}
   584  		}
   585  	}
   586  	{
   587  		h1 := t.OnReaderSentDataRequest
   588  		h2 := x.OnReaderSentDataRequest
   589  		ret.OnReaderSentDataRequest = func(t TopicReaderSentDataRequestInfo) {
   590  			if options.panicCallback != nil {
   591  				defer func() {
   592  					if e := recover(); e != nil {
   593  						options.panicCallback(e)
   594  					}
   595  				}()
   596  			}
   597  			if h1 != nil {
   598  				h1(t)
   599  			}
   600  			if h2 != nil {
   601  				h2(t)
   602  			}
   603  		}
   604  	}
   605  	{
   606  		h1 := t.OnReaderReceiveDataResponse
   607  		h2 := x.OnReaderReceiveDataResponse
   608  		ret.OnReaderReceiveDataResponse = func(t TopicReaderReceiveDataResponseStartInfo) func(TopicReaderReceiveDataResponseDoneInfo) {
   609  			if options.panicCallback != nil {
   610  				defer func() {
   611  					if e := recover(); e != nil {
   612  						options.panicCallback(e)
   613  					}
   614  				}()
   615  			}
   616  			var r, r1 func(TopicReaderReceiveDataResponseDoneInfo)
   617  			if h1 != nil {
   618  				r = h1(t)
   619  			}
   620  			if h2 != nil {
   621  				r1 = h2(t)
   622  			}
   623  			return func(t TopicReaderReceiveDataResponseDoneInfo) {
   624  				if options.panicCallback != nil {
   625  					defer func() {
   626  						if e := recover(); e != nil {
   627  							options.panicCallback(e)
   628  						}
   629  					}()
   630  				}
   631  				if r != nil {
   632  					r(t)
   633  				}
   634  				if r1 != nil {
   635  					r1(t)
   636  				}
   637  			}
   638  		}
   639  	}
   640  	{
   641  		h1 := t.OnReaderReadMessages
   642  		h2 := x.OnReaderReadMessages
   643  		ret.OnReaderReadMessages = func(t TopicReaderReadMessagesStartInfo) func(TopicReaderReadMessagesDoneInfo) {
   644  			if options.panicCallback != nil {
   645  				defer func() {
   646  					if e := recover(); e != nil {
   647  						options.panicCallback(e)
   648  					}
   649  				}()
   650  			}
   651  			var r, r1 func(TopicReaderReadMessagesDoneInfo)
   652  			if h1 != nil {
   653  				r = h1(t)
   654  			}
   655  			if h2 != nil {
   656  				r1 = h2(t)
   657  			}
   658  			return func(t TopicReaderReadMessagesDoneInfo) {
   659  				if options.panicCallback != nil {
   660  					defer func() {
   661  						if e := recover(); e != nil {
   662  							options.panicCallback(e)
   663  						}
   664  					}()
   665  				}
   666  				if r != nil {
   667  					r(t)
   668  				}
   669  				if r1 != nil {
   670  					r1(t)
   671  				}
   672  			}
   673  		}
   674  	}
   675  	{
   676  		h1 := t.OnReaderUnknownGrpcMessage
   677  		h2 := x.OnReaderUnknownGrpcMessage
   678  		ret.OnReaderUnknownGrpcMessage = func(o OnReadUnknownGrpcMessageInfo) {
   679  			if options.panicCallback != nil {
   680  				defer func() {
   681  					if e := recover(); e != nil {
   682  						options.panicCallback(e)
   683  					}
   684  				}()
   685  			}
   686  			if h1 != nil {
   687  				h1(o)
   688  			}
   689  			if h2 != nil {
   690  				h2(o)
   691  			}
   692  		}
   693  	}
   694  	{
   695  		h1 := t.OnWriterReconnect
   696  		h2 := x.OnWriterReconnect
   697  		ret.OnWriterReconnect = func(t TopicWriterReconnectStartInfo) func(TopicWriterReconnectDoneInfo) {
   698  			if options.panicCallback != nil {
   699  				defer func() {
   700  					if e := recover(); e != nil {
   701  						options.panicCallback(e)
   702  					}
   703  				}()
   704  			}
   705  			var r, r1 func(TopicWriterReconnectDoneInfo)
   706  			if h1 != nil {
   707  				r = h1(t)
   708  			}
   709  			if h2 != nil {
   710  				r1 = h2(t)
   711  			}
   712  			return func(t TopicWriterReconnectDoneInfo) {
   713  				if options.panicCallback != nil {
   714  					defer func() {
   715  						if e := recover(); e != nil {
   716  							options.panicCallback(e)
   717  						}
   718  					}()
   719  				}
   720  				if r != nil {
   721  					r(t)
   722  				}
   723  				if r1 != nil {
   724  					r1(t)
   725  				}
   726  			}
   727  		}
   728  	}
   729  	{
   730  		h1 := t.OnWriterInitStream
   731  		h2 := x.OnWriterInitStream
   732  		ret.OnWriterInitStream = func(t TopicWriterInitStreamStartInfo) func(TopicWriterInitStreamDoneInfo) {
   733  			if options.panicCallback != nil {
   734  				defer func() {
   735  					if e := recover(); e != nil {
   736  						options.panicCallback(e)
   737  					}
   738  				}()
   739  			}
   740  			var r, r1 func(TopicWriterInitStreamDoneInfo)
   741  			if h1 != nil {
   742  				r = h1(t)
   743  			}
   744  			if h2 != nil {
   745  				r1 = h2(t)
   746  			}
   747  			return func(t TopicWriterInitStreamDoneInfo) {
   748  				if options.panicCallback != nil {
   749  					defer func() {
   750  						if e := recover(); e != nil {
   751  							options.panicCallback(e)
   752  						}
   753  					}()
   754  				}
   755  				if r != nil {
   756  					r(t)
   757  				}
   758  				if r1 != nil {
   759  					r1(t)
   760  				}
   761  			}
   762  		}
   763  	}
   764  	{
   765  		h1 := t.OnWriterClose
   766  		h2 := x.OnWriterClose
   767  		ret.OnWriterClose = func(t TopicWriterCloseStartInfo) func(TopicWriterCloseDoneInfo) {
   768  			if options.panicCallback != nil {
   769  				defer func() {
   770  					if e := recover(); e != nil {
   771  						options.panicCallback(e)
   772  					}
   773  				}()
   774  			}
   775  			var r, r1 func(TopicWriterCloseDoneInfo)
   776  			if h1 != nil {
   777  				r = h1(t)
   778  			}
   779  			if h2 != nil {
   780  				r1 = h2(t)
   781  			}
   782  			return func(t TopicWriterCloseDoneInfo) {
   783  				if options.panicCallback != nil {
   784  					defer func() {
   785  						if e := recover(); e != nil {
   786  							options.panicCallback(e)
   787  						}
   788  					}()
   789  				}
   790  				if r != nil {
   791  					r(t)
   792  				}
   793  				if r1 != nil {
   794  					r1(t)
   795  				}
   796  			}
   797  		}
   798  	}
   799  	{
   800  		h1 := t.OnWriterBeforeCommitTransaction
   801  		h2 := x.OnWriterBeforeCommitTransaction
   802  		ret.OnWriterBeforeCommitTransaction = func(t TopicOnWriterBeforeCommitTransactionStartInfo) func(TopicOnWriterBeforeCommitTransactionDoneInfo) {
   803  			if options.panicCallback != nil {
   804  				defer func() {
   805  					if e := recover(); e != nil {
   806  						options.panicCallback(e)
   807  					}
   808  				}()
   809  			}
   810  			var r, r1 func(TopicOnWriterBeforeCommitTransactionDoneInfo)
   811  			if h1 != nil {
   812  				r = h1(t)
   813  			}
   814  			if h2 != nil {
   815  				r1 = h2(t)
   816  			}
   817  			return func(t TopicOnWriterBeforeCommitTransactionDoneInfo) {
   818  				if options.panicCallback != nil {
   819  					defer func() {
   820  						if e := recover(); e != nil {
   821  							options.panicCallback(e)
   822  						}
   823  					}()
   824  				}
   825  				if r != nil {
   826  					r(t)
   827  				}
   828  				if r1 != nil {
   829  					r1(t)
   830  				}
   831  			}
   832  		}
   833  	}
   834  	{
   835  		h1 := t.OnWriterAfterFinishTransaction
   836  		h2 := x.OnWriterAfterFinishTransaction
   837  		ret.OnWriterAfterFinishTransaction = func(t TopicOnWriterAfterFinishTransactionStartInfo) func(TopicOnWriterAfterFinishTransactionDoneInfo) {
   838  			if options.panicCallback != nil {
   839  				defer func() {
   840  					if e := recover(); e != nil {
   841  						options.panicCallback(e)
   842  					}
   843  				}()
   844  			}
   845  			var r, r1 func(TopicOnWriterAfterFinishTransactionDoneInfo)
   846  			if h1 != nil {
   847  				r = h1(t)
   848  			}
   849  			if h2 != nil {
   850  				r1 = h2(t)
   851  			}
   852  			return func(t TopicOnWriterAfterFinishTransactionDoneInfo) {
   853  				if options.panicCallback != nil {
   854  					defer func() {
   855  						if e := recover(); e != nil {
   856  							options.panicCallback(e)
   857  						}
   858  					}()
   859  				}
   860  				if r != nil {
   861  					r(t)
   862  				}
   863  				if r1 != nil {
   864  					r1(t)
   865  				}
   866  			}
   867  		}
   868  	}
   869  	{
   870  		h1 := t.OnWriterCompressMessages
   871  		h2 := x.OnWriterCompressMessages
   872  		ret.OnWriterCompressMessages = func(t TopicWriterCompressMessagesStartInfo) func(TopicWriterCompressMessagesDoneInfo) {
   873  			if options.panicCallback != nil {
   874  				defer func() {
   875  					if e := recover(); e != nil {
   876  						options.panicCallback(e)
   877  					}
   878  				}()
   879  			}
   880  			var r, r1 func(TopicWriterCompressMessagesDoneInfo)
   881  			if h1 != nil {
   882  				r = h1(t)
   883  			}
   884  			if h2 != nil {
   885  				r1 = h2(t)
   886  			}
   887  			return func(t TopicWriterCompressMessagesDoneInfo) {
   888  				if options.panicCallback != nil {
   889  					defer func() {
   890  						if e := recover(); e != nil {
   891  							options.panicCallback(e)
   892  						}
   893  					}()
   894  				}
   895  				if r != nil {
   896  					r(t)
   897  				}
   898  				if r1 != nil {
   899  					r1(t)
   900  				}
   901  			}
   902  		}
   903  	}
   904  	{
   905  		h1 := t.OnWriterSendMessages
   906  		h2 := x.OnWriterSendMessages
   907  		ret.OnWriterSendMessages = func(t TopicWriterSendMessagesStartInfo) func(TopicWriterSendMessagesDoneInfo) {
   908  			if options.panicCallback != nil {
   909  				defer func() {
   910  					if e := recover(); e != nil {
   911  						options.panicCallback(e)
   912  					}
   913  				}()
   914  			}
   915  			var r, r1 func(TopicWriterSendMessagesDoneInfo)
   916  			if h1 != nil {
   917  				r = h1(t)
   918  			}
   919  			if h2 != nil {
   920  				r1 = h2(t)
   921  			}
   922  			return func(t TopicWriterSendMessagesDoneInfo) {
   923  				if options.panicCallback != nil {
   924  					defer func() {
   925  						if e := recover(); e != nil {
   926  							options.panicCallback(e)
   927  						}
   928  					}()
   929  				}
   930  				if r != nil {
   931  					r(t)
   932  				}
   933  				if r1 != nil {
   934  					r1(t)
   935  				}
   936  			}
   937  		}
   938  	}
   939  	{
   940  		h1 := t.OnWriterReceiveResult
   941  		h2 := x.OnWriterReceiveResult
   942  		ret.OnWriterReceiveResult = func(t TopicWriterResultMessagesInfo) {
   943  			if options.panicCallback != nil {
   944  				defer func() {
   945  					if e := recover(); e != nil {
   946  						options.panicCallback(e)
   947  					}
   948  				}()
   949  			}
   950  			if h1 != nil {
   951  				h1(t)
   952  			}
   953  			if h2 != nil {
   954  				h2(t)
   955  			}
   956  		}
   957  	}
   958  	{
   959  		h1 := t.OnWriterReadUnknownGrpcMessage
   960  		h2 := x.OnWriterReadUnknownGrpcMessage
   961  		ret.OnWriterReadUnknownGrpcMessage = func(t TopicOnWriterReadUnknownGrpcMessageInfo) {
   962  			if options.panicCallback != nil {
   963  				defer func() {
   964  					if e := recover(); e != nil {
   965  						options.panicCallback(e)
   966  					}
   967  				}()
   968  			}
   969  			if h1 != nil {
   970  				h1(t)
   971  			}
   972  			if h2 != nil {
   973  				h2(t)
   974  			}
   975  		}
   976  	}
   977  	return &ret
   978  }
   979  func (t *Topic) onReaderStart(info TopicReaderStartInfo) {
   980  	fn := t.OnReaderStart
   981  	if fn == nil {
   982  		return
   983  	}
   984  	fn(info)
   985  }
   986  func (t *Topic) onReaderReconnect(t1 TopicReaderReconnectStartInfo) func(TopicReaderReconnectDoneInfo) {
   987  	fn := t.OnReaderReconnect
   988  	if fn == nil {
   989  		return func(TopicReaderReconnectDoneInfo) {
   990  			return
   991  		}
   992  	}
   993  	res := fn(t1)
   994  	if res == nil {
   995  		return func(TopicReaderReconnectDoneInfo) {
   996  			return
   997  		}
   998  	}
   999  	return res
  1000  }
  1001  func (t *Topic) onReaderReconnectRequest(t1 TopicReaderReconnectRequestInfo) {
  1002  	fn := t.OnReaderReconnectRequest
  1003  	if fn == nil {
  1004  		return
  1005  	}
  1006  	fn(t1)
  1007  }
  1008  func (t *Topic) onReaderPartitionReadStartResponse(t1 TopicReaderPartitionReadStartResponseStartInfo) func(TopicReaderPartitionReadStartResponseDoneInfo) {
  1009  	fn := t.OnReaderPartitionReadStartResponse
  1010  	if fn == nil {
  1011  		return func(TopicReaderPartitionReadStartResponseDoneInfo) {
  1012  			return
  1013  		}
  1014  	}
  1015  	res := fn(t1)
  1016  	if res == nil {
  1017  		return func(TopicReaderPartitionReadStartResponseDoneInfo) {
  1018  			return
  1019  		}
  1020  	}
  1021  	return res
  1022  }
  1023  func (t *Topic) onReaderPartitionReadStopResponse(t1 TopicReaderPartitionReadStopResponseStartInfo) func(TopicReaderPartitionReadStopResponseDoneInfo) {
  1024  	fn := t.OnReaderPartitionReadStopResponse
  1025  	if fn == nil {
  1026  		return func(TopicReaderPartitionReadStopResponseDoneInfo) {
  1027  			return
  1028  		}
  1029  	}
  1030  	res := fn(t1)
  1031  	if res == nil {
  1032  		return func(TopicReaderPartitionReadStopResponseDoneInfo) {
  1033  			return
  1034  		}
  1035  	}
  1036  	return res
  1037  }
  1038  func (t *Topic) onReaderCommit(t1 TopicReaderCommitStartInfo) func(TopicReaderCommitDoneInfo) {
  1039  	fn := t.OnReaderCommit
  1040  	if fn == nil {
  1041  		return func(TopicReaderCommitDoneInfo) {
  1042  			return
  1043  		}
  1044  	}
  1045  	res := fn(t1)
  1046  	if res == nil {
  1047  		return func(TopicReaderCommitDoneInfo) {
  1048  			return
  1049  		}
  1050  	}
  1051  	return res
  1052  }
  1053  func (t *Topic) onReaderSendCommitMessage(t1 TopicReaderSendCommitMessageStartInfo) func(TopicReaderSendCommitMessageDoneInfo) {
  1054  	fn := t.OnReaderSendCommitMessage
  1055  	if fn == nil {
  1056  		return func(TopicReaderSendCommitMessageDoneInfo) {
  1057  			return
  1058  		}
  1059  	}
  1060  	res := fn(t1)
  1061  	if res == nil {
  1062  		return func(TopicReaderSendCommitMessageDoneInfo) {
  1063  			return
  1064  		}
  1065  	}
  1066  	return res
  1067  }
  1068  func (t *Topic) onReaderCommittedNotify(t1 TopicReaderCommittedNotifyInfo) {
  1069  	fn := t.OnReaderCommittedNotify
  1070  	if fn == nil {
  1071  		return
  1072  	}
  1073  	fn(t1)
  1074  }
  1075  func (t *Topic) onReaderClose(t1 TopicReaderCloseStartInfo) func(TopicReaderCloseDoneInfo) {
  1076  	fn := t.OnReaderClose
  1077  	if fn == nil {
  1078  		return func(TopicReaderCloseDoneInfo) {
  1079  			return
  1080  		}
  1081  	}
  1082  	res := fn(t1)
  1083  	if res == nil {
  1084  		return func(TopicReaderCloseDoneInfo) {
  1085  			return
  1086  		}
  1087  	}
  1088  	return res
  1089  }
  1090  func (t *Topic) onReaderInit(t1 TopicReaderInitStartInfo) func(TopicReaderInitDoneInfo) {
  1091  	fn := t.OnReaderInit
  1092  	if fn == nil {
  1093  		return func(TopicReaderInitDoneInfo) {
  1094  			return
  1095  		}
  1096  	}
  1097  	res := fn(t1)
  1098  	if res == nil {
  1099  		return func(TopicReaderInitDoneInfo) {
  1100  			return
  1101  		}
  1102  	}
  1103  	return res
  1104  }
  1105  func (t *Topic) onReaderError(t1 TopicReaderErrorInfo) {
  1106  	fn := t.OnReaderError
  1107  	if fn == nil {
  1108  		return
  1109  	}
  1110  	fn(t1)
  1111  }
  1112  func (t *Topic) onReaderUpdateToken(o OnReadUpdateTokenStartInfo) func(OnReadUpdateTokenMiddleTokenReceivedInfo) func(OnReadStreamUpdateTokenDoneInfo) {
  1113  	fn := t.OnReaderUpdateToken
  1114  	if fn == nil {
  1115  		return func(OnReadUpdateTokenMiddleTokenReceivedInfo) func(OnReadStreamUpdateTokenDoneInfo) {
  1116  			return func(OnReadStreamUpdateTokenDoneInfo) {
  1117  				return
  1118  			}
  1119  		}
  1120  	}
  1121  	res := fn(o)
  1122  	if res == nil {
  1123  		return func(OnReadUpdateTokenMiddleTokenReceivedInfo) func(OnReadStreamUpdateTokenDoneInfo) {
  1124  			return func(OnReadStreamUpdateTokenDoneInfo) {
  1125  				return
  1126  			}
  1127  		}
  1128  	}
  1129  	return func(o OnReadUpdateTokenMiddleTokenReceivedInfo) func(OnReadStreamUpdateTokenDoneInfo) {
  1130  		res := res(o)
  1131  		if res == nil {
  1132  			return func(OnReadStreamUpdateTokenDoneInfo) {
  1133  				return
  1134  			}
  1135  		}
  1136  		return res
  1137  	}
  1138  }
  1139  func (t *Topic) onReaderPopBatchTx(t1 TopicReaderPopBatchTxStartInfo) func(TopicReaderPopBatchTxDoneInfo) {
  1140  	fn := t.OnReaderPopBatchTx
  1141  	if fn == nil {
  1142  		return func(TopicReaderPopBatchTxDoneInfo) {
  1143  			return
  1144  		}
  1145  	}
  1146  	res := fn(t1)
  1147  	if res == nil {
  1148  		return func(TopicReaderPopBatchTxDoneInfo) {
  1149  			return
  1150  		}
  1151  	}
  1152  	return res
  1153  }
  1154  func (t *Topic) onReaderStreamPopBatchTx(t1 TopicReaderStreamPopBatchTxStartInfo) func(TopicReaderStreamPopBatchTxDoneInfo) {
  1155  	fn := t.OnReaderStreamPopBatchTx
  1156  	if fn == nil {
  1157  		return func(TopicReaderStreamPopBatchTxDoneInfo) {
  1158  			return
  1159  		}
  1160  	}
  1161  	res := fn(t1)
  1162  	if res == nil {
  1163  		return func(TopicReaderStreamPopBatchTxDoneInfo) {
  1164  			return
  1165  		}
  1166  	}
  1167  	return res
  1168  }
  1169  func (t *Topic) onReaderUpdateOffsetsInTransaction(t1 TopicReaderOnUpdateOffsetsInTransactionStartInfo) func(TopicReaderOnUpdateOffsetsInTransactionDoneInfo) {
  1170  	fn := t.OnReaderUpdateOffsetsInTransaction
  1171  	if fn == nil {
  1172  		return func(TopicReaderOnUpdateOffsetsInTransactionDoneInfo) {
  1173  			return
  1174  		}
  1175  	}
  1176  	res := fn(t1)
  1177  	if res == nil {
  1178  		return func(TopicReaderOnUpdateOffsetsInTransactionDoneInfo) {
  1179  			return
  1180  		}
  1181  	}
  1182  	return res
  1183  }
  1184  func (t *Topic) onReaderTransactionCompleted(t1 TopicReaderTransactionCompletedStartInfo) func(TopicReaderTransactionCompletedDoneInfo) {
  1185  	fn := t.OnReaderTransactionCompleted
  1186  	if fn == nil {
  1187  		return func(TopicReaderTransactionCompletedDoneInfo) {
  1188  			return
  1189  		}
  1190  	}
  1191  	res := fn(t1)
  1192  	if res == nil {
  1193  		return func(TopicReaderTransactionCompletedDoneInfo) {
  1194  			return
  1195  		}
  1196  	}
  1197  	return res
  1198  }
  1199  func (t *Topic) onReaderTransactionRollback(t1 TopicReaderTransactionRollbackStartInfo) func(TopicReaderTransactionRollbackDoneInfo) {
  1200  	fn := t.OnReaderTransactionRollback
  1201  	if fn == nil {
  1202  		return func(TopicReaderTransactionRollbackDoneInfo) {
  1203  			return
  1204  		}
  1205  	}
  1206  	res := fn(t1)
  1207  	if res == nil {
  1208  		return func(TopicReaderTransactionRollbackDoneInfo) {
  1209  			return
  1210  		}
  1211  	}
  1212  	return res
  1213  }
  1214  func (t *Topic) onReaderSentDataRequest(t1 TopicReaderSentDataRequestInfo) {
  1215  	fn := t.OnReaderSentDataRequest
  1216  	if fn == nil {
  1217  		return
  1218  	}
  1219  	fn(t1)
  1220  }
  1221  func (t *Topic) onReaderReceiveDataResponse(t1 TopicReaderReceiveDataResponseStartInfo) func(TopicReaderReceiveDataResponseDoneInfo) {
  1222  	fn := t.OnReaderReceiveDataResponse
  1223  	if fn == nil {
  1224  		return func(TopicReaderReceiveDataResponseDoneInfo) {
  1225  			return
  1226  		}
  1227  	}
  1228  	res := fn(t1)
  1229  	if res == nil {
  1230  		return func(TopicReaderReceiveDataResponseDoneInfo) {
  1231  			return
  1232  		}
  1233  	}
  1234  	return res
  1235  }
  1236  func (t *Topic) onReaderReadMessages(t1 TopicReaderReadMessagesStartInfo) func(TopicReaderReadMessagesDoneInfo) {
  1237  	fn := t.OnReaderReadMessages
  1238  	if fn == nil {
  1239  		return func(TopicReaderReadMessagesDoneInfo) {
  1240  			return
  1241  		}
  1242  	}
  1243  	res := fn(t1)
  1244  	if res == nil {
  1245  		return func(TopicReaderReadMessagesDoneInfo) {
  1246  			return
  1247  		}
  1248  	}
  1249  	return res
  1250  }
  1251  func (t *Topic) onReaderUnknownGrpcMessage(o OnReadUnknownGrpcMessageInfo) {
  1252  	fn := t.OnReaderUnknownGrpcMessage
  1253  	if fn == nil {
  1254  		return
  1255  	}
  1256  	fn(o)
  1257  }
  1258  func (t *Topic) onWriterReconnect(t1 TopicWriterReconnectStartInfo) func(TopicWriterReconnectDoneInfo) {
  1259  	fn := t.OnWriterReconnect
  1260  	if fn == nil {
  1261  		return func(TopicWriterReconnectDoneInfo) {
  1262  			return
  1263  		}
  1264  	}
  1265  	res := fn(t1)
  1266  	if res == nil {
  1267  		return func(TopicWriterReconnectDoneInfo) {
  1268  			return
  1269  		}
  1270  	}
  1271  	return res
  1272  }
  1273  func (t *Topic) onWriterInitStream(t1 TopicWriterInitStreamStartInfo) func(TopicWriterInitStreamDoneInfo) {
  1274  	fn := t.OnWriterInitStream
  1275  	if fn == nil {
  1276  		return func(TopicWriterInitStreamDoneInfo) {
  1277  			return
  1278  		}
  1279  	}
  1280  	res := fn(t1)
  1281  	if res == nil {
  1282  		return func(TopicWriterInitStreamDoneInfo) {
  1283  			return
  1284  		}
  1285  	}
  1286  	return res
  1287  }
  1288  func (t *Topic) onWriterClose(t1 TopicWriterCloseStartInfo) func(TopicWriterCloseDoneInfo) {
  1289  	fn := t.OnWriterClose
  1290  	if fn == nil {
  1291  		return func(TopicWriterCloseDoneInfo) {
  1292  			return
  1293  		}
  1294  	}
  1295  	res := fn(t1)
  1296  	if res == nil {
  1297  		return func(TopicWriterCloseDoneInfo) {
  1298  			return
  1299  		}
  1300  	}
  1301  	return res
  1302  }
  1303  func (t *Topic) onWriterBeforeCommitTransaction(t1 TopicOnWriterBeforeCommitTransactionStartInfo) func(TopicOnWriterBeforeCommitTransactionDoneInfo) {
  1304  	fn := t.OnWriterBeforeCommitTransaction
  1305  	if fn == nil {
  1306  		return func(TopicOnWriterBeforeCommitTransactionDoneInfo) {
  1307  			return
  1308  		}
  1309  	}
  1310  	res := fn(t1)
  1311  	if res == nil {
  1312  		return func(TopicOnWriterBeforeCommitTransactionDoneInfo) {
  1313  			return
  1314  		}
  1315  	}
  1316  	return res
  1317  }
  1318  func (t *Topic) onWriterAfterFinishTransaction(t1 TopicOnWriterAfterFinishTransactionStartInfo) func(TopicOnWriterAfterFinishTransactionDoneInfo) {
  1319  	fn := t.OnWriterAfterFinishTransaction
  1320  	if fn == nil {
  1321  		return func(TopicOnWriterAfterFinishTransactionDoneInfo) {
  1322  			return
  1323  		}
  1324  	}
  1325  	res := fn(t1)
  1326  	if res == nil {
  1327  		return func(TopicOnWriterAfterFinishTransactionDoneInfo) {
  1328  			return
  1329  		}
  1330  	}
  1331  	return res
  1332  }
  1333  func (t *Topic) onWriterCompressMessages(t1 TopicWriterCompressMessagesStartInfo) func(TopicWriterCompressMessagesDoneInfo) {
  1334  	fn := t.OnWriterCompressMessages
  1335  	if fn == nil {
  1336  		return func(TopicWriterCompressMessagesDoneInfo) {
  1337  			return
  1338  		}
  1339  	}
  1340  	res := fn(t1)
  1341  	if res == nil {
  1342  		return func(TopicWriterCompressMessagesDoneInfo) {
  1343  			return
  1344  		}
  1345  	}
  1346  	return res
  1347  }
  1348  func (t *Topic) onWriterSendMessages(t1 TopicWriterSendMessagesStartInfo) func(TopicWriterSendMessagesDoneInfo) {
  1349  	fn := t.OnWriterSendMessages
  1350  	if fn == nil {
  1351  		return func(TopicWriterSendMessagesDoneInfo) {
  1352  			return
  1353  		}
  1354  	}
  1355  	res := fn(t1)
  1356  	if res == nil {
  1357  		return func(TopicWriterSendMessagesDoneInfo) {
  1358  			return
  1359  		}
  1360  	}
  1361  	return res
  1362  }
  1363  func (t *Topic) onWriterReceiveResult(t1 TopicWriterResultMessagesInfo) {
  1364  	fn := t.OnWriterReceiveResult
  1365  	if fn == nil {
  1366  		return
  1367  	}
  1368  	fn(t1)
  1369  }
  1370  func (t *Topic) onWriterReadUnknownGrpcMessage(t1 TopicOnWriterReadUnknownGrpcMessageInfo) {
  1371  	fn := t.OnWriterReadUnknownGrpcMessage
  1372  	if fn == nil {
  1373  		return
  1374  	}
  1375  	fn(t1)
  1376  }
  1377  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1378  func TopicOnReaderStart(t *Topic, readerID int64, consumer string, e error) {
  1379  	var p TopicReaderStartInfo
  1380  	p.ReaderID = readerID
  1381  	p.Consumer = consumer
  1382  	p.Error = e
  1383  	t.onReaderStart(p)
  1384  }
  1385  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1386  func TopicOnReaderReconnect(t *Topic, reason error) func(error) {
  1387  	var p TopicReaderReconnectStartInfo
  1388  	p.Reason = reason
  1389  	res := t.onReaderReconnect(p)
  1390  	return func(e error) {
  1391  		var p TopicReaderReconnectDoneInfo
  1392  		p.Error = e
  1393  		res(p)
  1394  	}
  1395  }
  1396  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1397  func TopicOnReaderReconnectRequest(t *Topic, reason error, wasSent bool) {
  1398  	var p TopicReaderReconnectRequestInfo
  1399  	p.Reason = reason
  1400  	p.WasSent = wasSent
  1401  	t.onReaderReconnectRequest(p)
  1402  }
  1403  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1404  func TopicOnReaderPartitionReadStartResponse(t *Topic, readerConnectionID string, partitionContext *context.Context, topic string, partitionID int64, partitionSessionID int64) func(readOffset *int64, commitOffset *int64, _ error) {
  1405  	var p TopicReaderPartitionReadStartResponseStartInfo
  1406  	p.ReaderConnectionID = readerConnectionID
  1407  	p.PartitionContext = partitionContext
  1408  	p.Topic = topic
  1409  	p.PartitionID = partitionID
  1410  	p.PartitionSessionID = partitionSessionID
  1411  	res := t.onReaderPartitionReadStartResponse(p)
  1412  	return func(readOffset *int64, commitOffset *int64, e error) {
  1413  		var p TopicReaderPartitionReadStartResponseDoneInfo
  1414  		p.ReadOffset = readOffset
  1415  		p.CommitOffset = commitOffset
  1416  		p.Error = e
  1417  		res(p)
  1418  	}
  1419  }
  1420  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1421  func TopicOnReaderPartitionReadStopResponse(t *Topic, readerConnectionID string, partitionContext context.Context, topic string, partitionID int64, partitionSessionID int64, committedOffset int64, graceful bool) func(error) {
  1422  	var p TopicReaderPartitionReadStopResponseStartInfo
  1423  	p.ReaderConnectionID = readerConnectionID
  1424  	p.PartitionContext = partitionContext
  1425  	p.Topic = topic
  1426  	p.PartitionID = partitionID
  1427  	p.PartitionSessionID = partitionSessionID
  1428  	p.CommittedOffset = committedOffset
  1429  	p.Graceful = graceful
  1430  	res := t.onReaderPartitionReadStopResponse(p)
  1431  	return func(e error) {
  1432  		var p TopicReaderPartitionReadStopResponseDoneInfo
  1433  		p.Error = e
  1434  		res(p)
  1435  	}
  1436  }
  1437  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1438  func TopicOnReaderCommit(t *Topic, requestContext *context.Context, topic string, partitionID int64, partitionSessionID int64, startOffset int64, endOffset int64) func(error) {
  1439  	var p TopicReaderCommitStartInfo
  1440  	p.RequestContext = requestContext
  1441  	p.Topic = topic
  1442  	p.PartitionID = partitionID
  1443  	p.PartitionSessionID = partitionSessionID
  1444  	p.StartOffset = startOffset
  1445  	p.EndOffset = endOffset
  1446  	res := t.onReaderCommit(p)
  1447  	return func(e error) {
  1448  		var p TopicReaderCommitDoneInfo
  1449  		p.Error = e
  1450  		res(p)
  1451  	}
  1452  }
  1453  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1454  func TopicOnReaderSendCommitMessage(t *Topic, commitsInfo TopicReaderStreamSendCommitMessageStartMessageInfo) func(error) {
  1455  	var p TopicReaderSendCommitMessageStartInfo
  1456  	p.CommitsInfo = commitsInfo
  1457  	res := t.onReaderSendCommitMessage(p)
  1458  	return func(e error) {
  1459  		var p TopicReaderSendCommitMessageDoneInfo
  1460  		p.Error = e
  1461  		res(p)
  1462  	}
  1463  }
  1464  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1465  func TopicOnReaderCommittedNotify(t *Topic, readerConnectionID string, topic string, partitionID int64, partitionSessionID int64, committedOffset int64) {
  1466  	var p TopicReaderCommittedNotifyInfo
  1467  	p.ReaderConnectionID = readerConnectionID
  1468  	p.Topic = topic
  1469  	p.PartitionID = partitionID
  1470  	p.PartitionSessionID = partitionSessionID
  1471  	p.CommittedOffset = committedOffset
  1472  	t.onReaderCommittedNotify(p)
  1473  }
  1474  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1475  func TopicOnReaderClose(t *Topic, readerConnectionID string, closeReason error) func(closeError error) {
  1476  	var p TopicReaderCloseStartInfo
  1477  	p.ReaderConnectionID = readerConnectionID
  1478  	p.CloseReason = closeReason
  1479  	res := t.onReaderClose(p)
  1480  	return func(closeError error) {
  1481  		var p TopicReaderCloseDoneInfo
  1482  		p.CloseError = closeError
  1483  		res(p)
  1484  	}
  1485  }
  1486  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1487  func TopicOnReaderInit(t *Topic, preInitReaderConnectionID string, initRequestInfo TopicReadStreamInitRequestInfo) func(readerConnectionID string, _ error) {
  1488  	var p TopicReaderInitStartInfo
  1489  	p.PreInitReaderConnectionID = preInitReaderConnectionID
  1490  	p.InitRequestInfo = initRequestInfo
  1491  	res := t.onReaderInit(p)
  1492  	return func(readerConnectionID string, e error) {
  1493  		var p TopicReaderInitDoneInfo
  1494  		p.ReaderConnectionID = readerConnectionID
  1495  		p.Error = e
  1496  		res(p)
  1497  	}
  1498  }
  1499  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1500  func TopicOnReaderError(t *Topic, readerConnectionID string, e error) {
  1501  	var p TopicReaderErrorInfo
  1502  	p.ReaderConnectionID = readerConnectionID
  1503  	p.Error = e
  1504  	t.onReaderError(p)
  1505  }
  1506  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1507  func TopicOnReaderUpdateToken(t *Topic, readerConnectionID string) func(tokenLen int, _ error) func(error) {
  1508  	var p OnReadUpdateTokenStartInfo
  1509  	p.ReaderConnectionID = readerConnectionID
  1510  	res := t.onReaderUpdateToken(p)
  1511  	return func(tokenLen int, e error) func(error) {
  1512  		var p OnReadUpdateTokenMiddleTokenReceivedInfo
  1513  		p.TokenLen = tokenLen
  1514  		p.Error = e
  1515  		res := res(p)
  1516  		return func(e error) {
  1517  			var p OnReadStreamUpdateTokenDoneInfo
  1518  			p.Error = e
  1519  			res(p)
  1520  		}
  1521  	}
  1522  }
  1523  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1524  func TopicOnReaderPopBatchTx(t *Topic, c *context.Context, readerID int64, transactionSessionID string, tx txInfo) func(startOffset int64, endOffset int64, messagesCount int, _ error) {
  1525  	var p TopicReaderPopBatchTxStartInfo
  1526  	p.Context = c
  1527  	p.ReaderID = readerID
  1528  	p.TransactionSessionID = transactionSessionID
  1529  	p.Tx = tx
  1530  	res := t.onReaderPopBatchTx(p)
  1531  	return func(startOffset int64, endOffset int64, messagesCount int, e error) {
  1532  		var p TopicReaderPopBatchTxDoneInfo
  1533  		p.StartOffset = startOffset
  1534  		p.EndOffset = endOffset
  1535  		p.MessagesCount = messagesCount
  1536  		p.Error = e
  1537  		res(p)
  1538  	}
  1539  }
  1540  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1541  func TopicOnReaderStreamPopBatchTx(t *Topic, c *context.Context, readerID int64, readerConnectionID string, transactionSessionID string, tx txInfo) func(error) {
  1542  	var p TopicReaderStreamPopBatchTxStartInfo
  1543  	p.Context = c
  1544  	p.ReaderID = readerID
  1545  	p.ReaderConnectionID = readerConnectionID
  1546  	p.TransactionSessionID = transactionSessionID
  1547  	p.Tx = tx
  1548  	res := t.onReaderStreamPopBatchTx(p)
  1549  	return func(e error) {
  1550  		var p TopicReaderStreamPopBatchTxDoneInfo
  1551  		p.Error = e
  1552  		res(p)
  1553  	}
  1554  }
  1555  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1556  func TopicOnReaderUpdateOffsetsInTransaction(t *Topic, c *context.Context, readerID int64, readerConnectionID string, transactionSessionID string, tx txInfo) func(error) {
  1557  	var p TopicReaderOnUpdateOffsetsInTransactionStartInfo
  1558  	p.Context = c
  1559  	p.ReaderID = readerID
  1560  	p.ReaderConnectionID = readerConnectionID
  1561  	p.TransactionSessionID = transactionSessionID
  1562  	p.Tx = tx
  1563  	res := t.onReaderUpdateOffsetsInTransaction(p)
  1564  	return func(e error) {
  1565  		var p TopicReaderOnUpdateOffsetsInTransactionDoneInfo
  1566  		p.Error = e
  1567  		res(p)
  1568  	}
  1569  }
  1570  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1571  func TopicOnReaderTransactionCompleted(t *Topic, c *context.Context, readerID int64, readerConnectionID string, transactionSessionID string, tx txInfo, transactionResult error) func() {
  1572  	var p TopicReaderTransactionCompletedStartInfo
  1573  	p.Context = c
  1574  	p.ReaderID = readerID
  1575  	p.ReaderConnectionID = readerConnectionID
  1576  	p.TransactionSessionID = transactionSessionID
  1577  	p.Tx = tx
  1578  	p.TransactionResult = transactionResult
  1579  	res := t.onReaderTransactionCompleted(p)
  1580  	return func() {
  1581  		var p TopicReaderTransactionCompletedDoneInfo
  1582  		res(p)
  1583  	}
  1584  }
  1585  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1586  func TopicOnReaderTransactionRollback(t *Topic, c *context.Context, readerID int64, readerConnectionID string, transactionSessionID string, tx txInfo) func(rollbackError error) {
  1587  	var p TopicReaderTransactionRollbackStartInfo
  1588  	p.Context = c
  1589  	p.ReaderID = readerID
  1590  	p.ReaderConnectionID = readerConnectionID
  1591  	p.TransactionSessionID = transactionSessionID
  1592  	p.Tx = tx
  1593  	res := t.onReaderTransactionRollback(p)
  1594  	return func(rollbackError error) {
  1595  		var p TopicReaderTransactionRollbackDoneInfo
  1596  		p.RollbackError = rollbackError
  1597  		res(p)
  1598  	}
  1599  }
  1600  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1601  func TopicOnReaderSentDataRequest(t *Topic, readerConnectionID string, requestBytes int, localBufferSizeAfterSent int) {
  1602  	var p TopicReaderSentDataRequestInfo
  1603  	p.ReaderConnectionID = readerConnectionID
  1604  	p.RequestBytes = requestBytes
  1605  	p.LocalBufferSizeAfterSent = localBufferSizeAfterSent
  1606  	t.onReaderSentDataRequest(p)
  1607  }
  1608  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1609  func TopicOnReaderReceiveDataResponse(t *Topic, readerConnectionID string, localBufferSizeAfterReceive int, dataResponse TopicReaderDataResponseInfo) func(error) {
  1610  	var p TopicReaderReceiveDataResponseStartInfo
  1611  	p.ReaderConnectionID = readerConnectionID
  1612  	p.LocalBufferSizeAfterReceive = localBufferSizeAfterReceive
  1613  	p.DataResponse = dataResponse
  1614  	res := t.onReaderReceiveDataResponse(p)
  1615  	return func(e error) {
  1616  		var p TopicReaderReceiveDataResponseDoneInfo
  1617  		p.Error = e
  1618  		res(p)
  1619  	}
  1620  }
  1621  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1622  func TopicOnReaderReadMessages(t *Topic, requestContext *context.Context, minCount int, maxCount int, freeBufferCapacity int) func(messagesCount int, topic string, partitionID int64, partitionSessionID int64, offsetStart int64, offsetEnd int64, freeBufferCapacity int, _ error) {
  1623  	var p TopicReaderReadMessagesStartInfo
  1624  	p.RequestContext = requestContext
  1625  	p.MinCount = minCount
  1626  	p.MaxCount = maxCount
  1627  	p.FreeBufferCapacity = freeBufferCapacity
  1628  	res := t.onReaderReadMessages(p)
  1629  	return func(messagesCount int, topic string, partitionID int64, partitionSessionID int64, offsetStart int64, offsetEnd int64, freeBufferCapacity int, e error) {
  1630  		var p TopicReaderReadMessagesDoneInfo
  1631  		p.MessagesCount = messagesCount
  1632  		p.Topic = topic
  1633  		p.PartitionID = partitionID
  1634  		p.PartitionSessionID = partitionSessionID
  1635  		p.OffsetStart = offsetStart
  1636  		p.OffsetEnd = offsetEnd
  1637  		p.FreeBufferCapacity = freeBufferCapacity
  1638  		p.Error = e
  1639  		res(p)
  1640  	}
  1641  }
  1642  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1643  func TopicOnReaderUnknownGrpcMessage(t *Topic, readerConnectionID string, e error) {
  1644  	var p OnReadUnknownGrpcMessageInfo
  1645  	p.ReaderConnectionID = readerConnectionID
  1646  	p.Error = e
  1647  	t.onReaderUnknownGrpcMessage(p)
  1648  }
  1649  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1650  func TopicOnWriterReconnect(t *Topic, writerInstanceID string, topic string, producerID string, attempt int) func(error) {
  1651  	var p TopicWriterReconnectStartInfo
  1652  	p.WriterInstanceID = writerInstanceID
  1653  	p.Topic = topic
  1654  	p.ProducerID = producerID
  1655  	p.Attempt = attempt
  1656  	res := t.onWriterReconnect(p)
  1657  	return func(e error) {
  1658  		var p TopicWriterReconnectDoneInfo
  1659  		p.Error = e
  1660  		res(p)
  1661  	}
  1662  }
  1663  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1664  func TopicOnWriterInitStream(t *Topic, writerInstanceID string, topic string, producerID string) func(sessionID string, _ error) {
  1665  	var p TopicWriterInitStreamStartInfo
  1666  	p.WriterInstanceID = writerInstanceID
  1667  	p.Topic = topic
  1668  	p.ProducerID = producerID
  1669  	res := t.onWriterInitStream(p)
  1670  	return func(sessionID string, e error) {
  1671  		var p TopicWriterInitStreamDoneInfo
  1672  		p.SessionID = sessionID
  1673  		p.Error = e
  1674  		res(p)
  1675  	}
  1676  }
  1677  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1678  func TopicOnWriterClose(t *Topic, writerInstanceID string, reason error) func(error) {
  1679  	var p TopicWriterCloseStartInfo
  1680  	p.WriterInstanceID = writerInstanceID
  1681  	p.Reason = reason
  1682  	res := t.onWriterClose(p)
  1683  	return func(e error) {
  1684  		var p TopicWriterCloseDoneInfo
  1685  		p.Error = e
  1686  		res(p)
  1687  	}
  1688  }
  1689  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1690  func TopicOnWriterBeforeCommitTransaction(t *Topic, ctx *context.Context, kqpSessionID string, topicSessionID string, transactionID string) func(_ error, topicSessionID string) {
  1691  	var p TopicOnWriterBeforeCommitTransactionStartInfo
  1692  	p.Ctx = ctx
  1693  	p.KqpSessionID = kqpSessionID
  1694  	p.TopicSessionID = topicSessionID
  1695  	p.TransactionID = transactionID
  1696  	res := t.onWriterBeforeCommitTransaction(p)
  1697  	return func(e error, topicSessionID string) {
  1698  		var p TopicOnWriterBeforeCommitTransactionDoneInfo
  1699  		p.Error = e
  1700  		p.TopicSessionID = topicSessionID
  1701  		res(p)
  1702  	}
  1703  }
  1704  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1705  func TopicOnWriterAfterFinishTransaction(t *Topic, e error, sessionID string, transactionID string) func(closeError error) {
  1706  	var p TopicOnWriterAfterFinishTransactionStartInfo
  1707  	p.Error = e
  1708  	p.SessionID = sessionID
  1709  	p.TransactionID = transactionID
  1710  	res := t.onWriterAfterFinishTransaction(p)
  1711  	return func(closeError error) {
  1712  		var p TopicOnWriterAfterFinishTransactionDoneInfo
  1713  		p.CloseError = closeError
  1714  		res(p)
  1715  	}
  1716  }
  1717  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1718  func TopicOnWriterCompressMessages(t *Topic, writerInstanceID string, sessionID string, codec int32, firstSeqNo int64, messagesCount int, reason TopicWriterCompressMessagesReason) func(error) {
  1719  	var p TopicWriterCompressMessagesStartInfo
  1720  	p.WriterInstanceID = writerInstanceID
  1721  	p.SessionID = sessionID
  1722  	p.Codec = codec
  1723  	p.FirstSeqNo = firstSeqNo
  1724  	p.MessagesCount = messagesCount
  1725  	p.Reason = reason
  1726  	res := t.onWriterCompressMessages(p)
  1727  	return func(e error) {
  1728  		var p TopicWriterCompressMessagesDoneInfo
  1729  		p.Error = e
  1730  		res(p)
  1731  	}
  1732  }
  1733  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1734  func TopicOnWriterSendMessages(t *Topic, writerInstanceID string, sessionID string, codec int32, firstSeqNo int64, messagesCount int) func(error) {
  1735  	var p TopicWriterSendMessagesStartInfo
  1736  	p.WriterInstanceID = writerInstanceID
  1737  	p.SessionID = sessionID
  1738  	p.Codec = codec
  1739  	p.FirstSeqNo = firstSeqNo
  1740  	p.MessagesCount = messagesCount
  1741  	res := t.onWriterSendMessages(p)
  1742  	return func(e error) {
  1743  		var p TopicWriterSendMessagesDoneInfo
  1744  		p.Error = e
  1745  		res(p)
  1746  	}
  1747  }
  1748  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1749  func TopicOnWriterReceiveResult(t *Topic, writerInstanceID string, sessionID string, partitionID int64, acks TopicWriterResultMessagesInfoAcks) {
  1750  	var p TopicWriterResultMessagesInfo
  1751  	p.WriterInstanceID = writerInstanceID
  1752  	p.SessionID = sessionID
  1753  	p.PartitionID = partitionID
  1754  	p.Acks = acks
  1755  	t.onWriterReceiveResult(p)
  1756  }
  1757  // Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals
  1758  func TopicOnWriterReadUnknownGrpcMessage(t *Topic, writerInstanceID string, sessionID string, e error) {
  1759  	var p TopicOnWriterReadUnknownGrpcMessageInfo
  1760  	p.WriterInstanceID = writerInstanceID
  1761  	p.SessionID = sessionID
  1762  	p.Error = e
  1763  	t.onWriterReadUnknownGrpcMessage(p)
  1764  }