namespace Mr.BrickAdventures.Progression;
///
/// Collects the events an aggregate raises until someone drains them. Composed rather than
/// inherited — aggregates own one, they are not a kind of it.
///
internal sealed class EventLog
{
private readonly List _events = new();
public void Raise(ProgressionEvent @event) => _events.Add(@event);
public IReadOnlyList Drain()
{
var drained = _events.ToList();
_events.Clear();
return drained;
}
}