func NewContextWithTrace(ctx context.Context, t *Trace) context.Context {
	return context.WithValue(ctx, traceKey, t)
}
NewContextWithTrace returns a new context with the given Trace added.
package tracing
import "context"
type key int
const (
	spanKey key = iota
	traceKey
)
func NewContextWithSpan(ctx context.Context, c *Span) context.Context {
	return context.WithValue(ctx, spanKey, c)
}
func SpanFromContext(ctx context.Context) *Span {
	c, _ := ctx.Value(spanKey).(*Span)
	return c
}