func (r *clientRouter) StreamResolver() grpc.StreamClientInterceptor {
	return func(ctx context.Context, desc *grpc.StreamDesc, cc *grpc.ClientConn, method string, streamer grpc.Streamer, opts ...grpc.CallOption) (grpc.ClientStream, error) {
		// TODO: Find a more efficient way to chain the interceptors
		interceptor := NewStreamClientInterceptor()
		_, err := resolveClientInterceptor(method, r.interceptors, func(lvl ClientInterceptor) {
			interceptor.AddInterceptor(lvl.StreamClientInterceptor())
		}, false)
		if err != nil {
			return nil, grpc.Errorf(codes.Internal, err.Error())
		}
		return interceptor.Interceptor()(ctx, desc, cc, method, streamer, opts...)
	}
}
// StreamResolver returns a `grpc.StreamClientInterceptor` that uses the
// appropriate chain of interceptors with the given stream gRPC request.
StreamResolver returns a `grpc.StreamClientInterceptor` that uses the
appropriate chain of interceptors with the given stream gRPC request.
// StreamResolver returns a ` grpc . StreamClientInterceptor ` that uses the // appropriate chain of interceptors with the given stream gRPC request .
func (r *clientRouter) StreamResolver() grpc.StreamClientInterceptor {
	return func(ctx context.Context, desc *grpc.StreamDesc, cc *grpc.ClientConn, method string, streamer grpc.Streamer, opts ...grpc.CallOption) (grpc.ClientStream, error) {
		interceptor := NewStreamClientInterceptor()
		_, err := resolveClientInterceptor(method, r.interceptors, func(lvl ClientInterceptor) {
			interceptor.AddInterceptor(lvl.StreamClientInterceptor())
		}, false)
		if err != nil {
			return nil, grpc.Errorf(codes.Internal, err.Error())
		}
		return interceptor.Interceptor()(ctx, desc, cc, method, streamer, opts...)
	}
}
func ( r * clientRouter ) StreamResolver ( ) grpc . StreamClientInterceptor { return func ( ctx context . Context , desc * grpc . StreamDesc , cc * grpc . ClientConn , method string , streamer grpc . Streamer , opts ... grpc . CallOption ) ( grpc . ClientStream , error ) { interceptor := NewStreamClientInterceptor ( ) _ , err := resolveClientInterceptor ( method , r . interceptors , func ( lvl ClientInterceptor ) { interceptor . AddInterceptor ( lvl . StreamClientInterceptor ( ) ) } , false ) if err != nil { return nil , grpc . Errorf ( codes . Internal , err . Error ( ) ) } return interceptor . Interceptor ( ) ( ctx , desc , cc , method , streamer , opts ... ) } }
StreamResolver returns a `grpc.StreamClientInterceptor` that uses the
appropriate chain of interceptors with the given stream gRPC request.
StreamResolver returns a ` grpc . StreamClientInterceptor ` that uses the appropriate chain of interceptors with the given stream gRPC request .
// TODO: Find a more efficient way to chain the interceptors