- static bool contains(const EventSet& events, const UnfoldingEvent* e);
- static UnfoldingEvent* find(const EventSet& events, const UnfoldingEvent* e);
- static void subtract(EventSet& events, EventSet const& otherSet);
- static bool depends(const EventSet& events, const EventSet& otherSet);
- static bool isEmptyIntersection(EventSet evtS1, EventSet evtS2);
- static EventSet makeUnion(const EventSet& s1, const EventSet& s2);
- static void pushBack(EventSet& events, UnfoldingEvent* e);
- static void remove(EventSet& events, UnfoldingEvent* e);
- static EventSet minus(EventSet events, UnfoldingEvent* e);
- static EventSet plus(EventSet events, UnfoldingEvent* e);
+ EventSet() = default;
+ EventSet(const EventSet&) = default;
+ EventSet& operator=(const EventSet&) = default;
+ EventSet& operator=(EventSet&&) = default;
+ EventSet(EventSet&&) = default;
+
+ inline auto begin() const { return this->events_.begin(); }
+ inline auto end() const { return this->events_.end(); }
+
+ void remove(UnfoldingEvent* e);
+ void subtract(const EventSet& other);
+ void subtract(const Configuration& other);
+ EventSet subtracting(UnfoldingEvent* e) const;
+ EventSet subtracting(const EventSet& e) const;
+ EventSet subtracting(const Configuration* e) const;
+
+ void insert(UnfoldingEvent* e);
+ void form_union(const EventSet&);
+ void form_union(const Configuration&);
+ EventSet make_union(UnfoldingEvent* e) const;
+ EventSet make_union(const EventSet&) const;
+ EventSet make_union(const Configuration& e) const;
+
+ size_t size() const;
+ bool empty() const;
+ bool contains(UnfoldingEvent* e) const;
+ bool is_subset_of(const EventSet& other) const;