func FromContext(ctx context.Context) *Trace {
	if v, ok := ctx.Value(ContextTraceKey{}).(*Trace); ok {
		return v
	}
	return nil
}
// FromContext returns the trace keyed by ContextTraceKey in the context values, if one
// is present, or nil If there is no trace in the Context.
// It is safe to call Nest() on the returned value even if it is nil because ((*Trace)nil).Nest returns a top level
// trace.
FromContext returns the trace keyed by ContextTraceKey in the context values, if one
is present, or nil If there is no trace in the Context.
It is safe to call Nest() on the returned value even if it is nil because ((*Trace)nil).Nest returns a top level
trace.
// FromContext returns the trace keyed by ContextTraceKey in the context values if one // is present or nil If there is no trace in the Context . // It is safe to call Nest () on the returned value even if it is nil because (( * Trace ) nil ) . Nest returns a top level // trace .
func FromContext(ctx context.Context) *Trace {
	if v, ok := ctx.Value(ContextTraceKey{}).(*Trace); ok {
		return v
	}
	return nil
}
func FromContext ( ctx context . Context ) * Trace { if v , ok := ctx . Value ( ContextTraceKey { } ) . ( * Trace ) ; ok { return v } return nil }
FromContext returns the trace keyed by ContextTraceKey in the context values, if one
is present, or nil If there is no trace in the Context.
FromContext returns the trace keyed by ContextTraceKey in the context values if one is present or nil If there is no trace in the Context .