func CurrentSpan(ctx context.Context) *Span {
	if sp := opentracing.SpanFromContext(ctx); sp != nil {
		var injectable injectableSpan
		if err := injectable.initFromOpenTracing(sp); err == nil {
			span := Span(injectable)
			return &span
		}
		// return empty span on error, instead of possibly a partially filled one
	}
	return &emptySpan
}
func CurrentSpan(ctx context.Context) *Span {
	if sp := opentracing.SpanFromContext(ctx); sp != nil {
		var injectable injectableSpan
		if err := injectable.initFromOpenTracing(sp); err == nil {
			span := Span(injectable)
			return &span
		}
		
	}
	return &emptySpan
}
func CurrentSpan ( ctx context . Context ) * Span { if sp := opentracing . SpanFromContext ( ctx ) ; sp != nil { var injectable injectableSpan if err := injectable . initFromOpenTracing ( sp ) ; err == nil { span := Span ( injectable ) return & span } // return empty span on error, instead of possibly a partially filled one } return & emptySpan }
// CurrentSpan extracts OpenTracing Span from the Context, and if found tries to
// extract zipkin-style trace/span IDs from it using ZipkinSpanFormat carrier.
// If there is no OpenTracing Span in the Context, an empty span is returned.
CurrentSpan extracts OpenTracing Span from the Context and if found tries to extract zipkin - style trace / span IDs from it using ZipkinSpanFormat carrier . If there is no OpenTracing Span in the Context an empty span is returned .