func SetRequestHeader(key, val string) ClientRequestFunc {
	return func(ctx context.Context, md *metadata.MD) context.Context {
		key, val := EncodeKeyValue(key, val)
		(*md)[key] = append((*md)[key], val)
		return ctx
	}
}
SetRequestHeader returns a ClientRequestFunc that sets the specified metadata
key-value pair.
package grpc
import (
	"context"
	"encoding/base64"
	"strings"
	"google.golang.org/grpc/metadata"
)
const (
	binHdrSuffix = "-bin"
)
type ClientRequestFunc func(context.Context, *metadata.MD) context.Context
type ServerRequestFunc func(context.Context, metadata.MD) context.Context
type ServerResponseFunc func(ctx context.Context, header *metadata.MD, trailer *metadata.MD) context.Context
type ClientResponseFunc func(ctx context.Context, header metadata.MD, trailer metadata.MD) context.Context