Previously settings about side effects were scattered through different
relevant classes.
Now they will all be recorded in a single config object.
Additionally, log messages about both success and failure of introducing
these side effects.
This patch changes AcediaCore to only inject `BroadcastEventsObserver`
when its events are actually needed.
Other changes are making this change produce a log entry and adding a
relevant `SideEffect` that describes this change.
AcediaCore is moving towards separation of all of its functionality into
3 big groups: general, client-specific, server-specific. And files will
be rearranged into `BaseRealms`, `ClientRealm` and `ServerRealm`
accordingly.
Additional directory `CoreRealm` is meant to contain functionality and
base classes common for both `ClientRealm` and `ServerRealm` ones.
Previously `Iter` was meant to be a collection iterator class, but now
we need a more generalized notion of iterator, so we move some
collection-specific methods out and designate `Iter` a general iterator
class, while `CollectionIterator` takes its former place.
Squashed commit of the following:
commit f7cbf54045
Author: Anton Tarasenko <dkanus@gmail.com>
Date: Thu Jun 23 02:45:20 2022 +0700
Done
commit 3cf67a3ca5
Author: Anton Tarasenko <dkanus@gmail.com>
Date: Wed Jun 22 20:49:28 2022 +0700
Almost done
commit 6dfb9dc204
Author: Anton Tarasenko <dkanus@gmail.com>
Date: Wed Jun 22 17:03:06 2022 +0700
Now it even works
commit 2be4656f51
Author: Anton Tarasenko <dkanus@gmail.com>
Date: Wed Jun 22 16:30:35 2022 +0700
Kind of compiles now
commit 73914e9b7e
Author: Anton Tarasenko <dkanus@gmail.com>
Date: Tue Jun 21 04:24:04 2022 +0700
Daily dirty commit