go.mercari.io/datastore@v1.8.2/dsmiddleware/splitop/option.go (about)

     1  package splitop
     2  
     3  import "context"
     4  
     5  // WithSplitThreshold set operation split threshold.
     6  // Deprecated: use WithGetSplitThreshold instead.
     7  func WithSplitThreshold(threshold int) Option {
     8  	return &getSplitThreshold{threshold}
     9  }
    10  
    11  // WithGetSplitThreshold set get operation split threshold.
    12  func WithGetSplitThreshold(threshold int) Option {
    13  	return &getSplitThreshold{threshold}
    14  }
    15  
    16  type getSplitThreshold struct{ splitThreshold int }
    17  
    18  func (w *getSplitThreshold) Apply(o *splitHandler) {
    19  	o.getSplitThreshold = w.splitThreshold
    20  }
    21  
    22  // WithPutSplitThreshold set put operation split threshold.
    23  func WithPutSplitThreshold(threshold int) Option {
    24  	return &putSplitThreshold{threshold}
    25  }
    26  
    27  type putSplitThreshold struct{ splitThreshold int }
    28  
    29  func (w *putSplitThreshold) Apply(o *splitHandler) {
    30  	o.putSplitThreshold = w.splitThreshold
    31  }
    32  
    33  // WithLogger creates a Option that uses the specified logger.
    34  func WithLogger(logf func(ctx context.Context, format string, args ...interface{})) Option {
    35  	return &withLogger{logf}
    36  }
    37  
    38  type withLogger struct {
    39  	logf func(ctx context.Context, format string, args ...interface{})
    40  }
    41  
    42  func (w *withLogger) Apply(o *splitHandler) {
    43  	o.logf = w.logf
    44  }