func (c *Client) unaryClientInterceptor(optFuncs ...retryOption) grpc.UnaryClientInterceptor { … }
func (c *Client) streamClientInterceptor(optFuncs ...retryOption) grpc.StreamClientInterceptor { … }
func (c *Client) shouldRefreshToken(err error, callOpts *options) bool { … }
func (c *Client) refreshToken(ctx context.Context) error { … }
type serverStreamingRetryingStream …
func (s *serverStreamingRetryingStream) setStream(clientStream grpc.ClientStream) { … }
func (s *serverStreamingRetryingStream) getStream() grpc.ClientStream { … }
func (s *serverStreamingRetryingStream) SendMsg(m interface{ … }
func (s *serverStreamingRetryingStream) CloseSend() error { … }
func (s *serverStreamingRetryingStream) Header() (metadata.MD, error) { … }
func (s *serverStreamingRetryingStream) Trailer() metadata.MD { … }
func (s *serverStreamingRetryingStream) RecvMsg(m interface{ … }
func (s *serverStreamingRetryingStream) receiveMsgAndIndicateRetry(m interface{ … }
func (s *serverStreamingRetryingStream) reestablishStreamAndResendBuffer(callCtx context.Context) (grpc.ClientStream, error) { … }
func waitRetryBackoff(ctx context.Context, attempt uint, callOpts *options) error { … }
func isSafeRetry(c *Client, err error, callOpts *options) bool { … }
func isContextError(err error) bool { … }
func contextErrToGrpcErr(err error) error { … }
var defaultOptions …
type backoffFunc …
func withRetryPolicy(rp retryPolicy) retryOption { … }
func withMax(maxRetries uint) retryOption { … }
func withBackoff(bf backoffFunc) retryOption { … }
type options …
type retryOption …
func reuseOrNewWithCallOptions(opt *options, retryOptions []retryOption) *options { … }
func filterCallOptions(callOptions []grpc.CallOption) (grpcOptions []grpc.CallOption, retryOptions []retryOption) { … }
func backoffLinearWithJitter(waitBetween time.Duration, jitterFraction float64) backoffFunc { … }