3 public protocol Queue {
5 var eventCount: Int { get }
7 mutating func enqueue(events: [Event], completion: (()->())?)
9 /// Returns the first `limit` events ordered by Event.date
10 func first(limit: Int, completion: (_ items: [Event])->())
12 /// Removes the events from the queue
13 mutating func remove(events: [Event], completion: ()->())
17 mutating func enqueue(event: Event, completion: (()->())? = nil) {
18 enqueue(events: [event], completion: completion)