Documentation ¶
Overview ¶
Package grpcutil provides a bunch of utility functions to be used across the gRPC codebase.
Index ¶
- func ContentSubtype(contentType string) (string, bool)
- func ContentType(contentSubtype string) string
- func EncodeDuration(t time.Duration) string
- func ExtraMetadata(ctx context.Context) (md metadata.MD, ok bool)
- func ParseMethod(methodName string) (service, method string, _ error)
- func ParseTarget(target string, skipUnixColonParsing bool) (ret resolver.Target)
- func WithExtraMetadata(ctx context.Context, md metadata.MD) context.Context
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ContentSubtype ¶
ContentSubtype returns the content-subtype for the given content-type. The given content-type must be a valid content-type that starts with "application/grpc". A content-subtype will follow "application/grpc" after a "+" or ";". See https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests for more details.
If contentType is not a valid content-type for gRPC, the boolean will be false, otherwise true. If content-type == "application/grpc", "application/grpc+", or "application/grpc;", the boolean will be true, but no content-subtype will be returned.
contentType is assumed to be lowercase already.
func ContentType ¶
ContentType builds full content type with the given sub-type.
contentSubtype is assumed to be lowercase
func EncodeDuration ¶
EncodeDuration encodes the duration to the format grpc-timeout header accepts.
https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests
func ExtraMetadata ¶
ExtraMetadata returns the incoming metadata in ctx if it exists. The returned MD should not be modified. Writing to it may cause races. Modification should be made to copies of the returned MD.
func ParseMethod ¶
ParseMethod splits service and method from the input. It expects format "/service/method".
func ParseTarget ¶
ParseTarget splits target into a resolver.Target struct containing scheme, authority and endpoint. skipUnixColonParsing indicates that the parse should not parse "unix:path" cases. This should be true in cases where a custom dialer is present, to prevent a behavior change.
If target is not a valid scheme://authority/endpoint as specified in https://github.com/grpc/grpc/blob/master/doc/naming.md, it returns {Endpoint: target}.
Types ¶
This section is empty.