func (s *span) IsRecordingEvents() bool {
	if s == nil {
		return false
	}
	return s.data != nil
}
IsRecordingEvents returns true if events are being recorded for this span.
Use this check to avoid computing expensive annotations when they will never
be used.
package trace
import (
	"context"
	crand "crypto/rand"
	"encoding/binary"
	"fmt"
	"math/rand"
	"sync"
	"sync/atomic"
	"time"
	"go.opencensus.io/internal"
	"go.opencensus.io/trace/tracestate"
)
type tracer struct{}
var _ Tracer = &tracer{}
type span struct {
	data        *SpanData
	mu          sync.Mutex  
	spanContext SpanContext
	lruAttributes *lruMap
	annotations *evictedQueue
	messageEvents *evictedQueue
	links *evictedQueue
	*spanStore
	endOnce sync.Once
	executionTracerTaskEnd func()  
}