From 49978b75c03f93208fd672700f6267033b727d52 Mon Sep 17 00:00:00 2001 From: Vasiliy Tolstov Date: Mon, 14 Nov 2022 15:29:45 +0300 Subject: [PATCH] client: add req/rsp metadata to CallOptions Signed-off-by: Vasiliy Tolstov --- client/options.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/client/options.go b/client/options.go index 6416756f..37984507 100644 --- a/client/options.go +++ b/client/options.go @@ -98,6 +98,10 @@ type CallOptions struct { StreamTimeout time.Duration // RequestTimeout request timeout RequestTimeout time.Duration + // RequestMetadata holds additional metadata for call + RequestMetadata metadata.Metadata + // ResponseMetadata holds additional metadata from call + ResponseMetadata metadata.Metadata // DialTimeout dial timeout DialTimeout time.Duration // Retries specifies retries num @@ -477,6 +481,20 @@ func WithRetries(i int) CallOption { } } +// WithResponseMetadata is a CallOption which adds metadata.Metadata to Options.CallOptions +func WithResponseMetadata(md metadata.Metadata) CallOption { + return func(o *CallOptions) { + o.ResponseMetadata = md + } +} + +// WithRequestMetadata is a CallOption which adds metadata.Metadata to Options.CallOptions +func WithRequestMetadata(md metadata.Metadata) CallOption { + return func(o *CallOptions) { + o.RequestMetadata = md + } +} + // WithRequestTimeout is a CallOption which overrides that which // set in Options.CallOptions func WithRequestTimeout(d time.Duration) CallOption {