public bool MoveNext()
        {
            if (!_canMove)
            {
                return(false);
            }

            var result = EnumerationHelper.MoveNext(_buckets, ref _currentBucketIndex, ref _currentEventIndex, _lastEventIndex);

            if (result)
            {
                _currentItem = new EventBucketInfo(
                    _buckets[_currentBucketIndex].Events[_currentEventIndex],
                    _currentBucketIndex,
                    _currentEventIndex
                    );
            }

            return(result);
        }
        public bool MoveNext()
        {
            if (!_canMove)
            {
                return(false);
            }

            var result = EnumerationHelper.MoveNext(_buckets, ref _currentBucketIndex, ref _currentEventIndex, _lastEventIndex);

            if (result)
            {
                var bucket = _buckets[_currentBucketIndex];
                var ev     = bucket.Events[_currentEventIndex];
                _currentItem = new RealEvent(
                    ev.EventType,
                    bucket.GetAbsoluteTimeForEvent(ev)
                    );
            }

            return(result);
        }