context_header.go
func Wrap(ctx context.Context) ContextWithHeaders {
	hctx := headerCtx{Context: ctx}
	if h := hctx.headers(); h != nil {
		return hctx
	}

	// If there is no header container, we should create an empty one.
	return WrapWithHeaders(ctx, nil)
}
func Wrap(ctx context.Context) ContextWithHeaders {
	hctx := headerCtx{Context: ctx}
	if h := hctx.headers(); h != nil {
		return hctx
	}

	// If there is no header container, we should create an empty one.
	return WrapWithHeaders(ctx, nil)
}
// Wrap wraps an existing context.Context into a ContextWithHeaders.
// If the underlying context has headers, they are preserved.