code: func (c *CircularBuffer) eventsCopy() []Event {
  	if c.size == 0 {
  		return nil
  	}
  	var out []Event
  	for i := 0; i < c.size; i++ {
  		index := (c.start + i) % len(c.events)
  		if out == nil {
  			out = make([]Event, 0, c.size)
  		}
  		out = append(out, c.events[index])
  	}
  	return out
  }
docs: // eventsCopy returns a copy of events as arranged from start to end