v0.14.0
Full rewrite of this crate
The main problem was that the API followed the implementation and not the other way round. That had the effect that some API improvements weren't possible because they were no longer implementable.
With the new implementation, several API decisions that bothered me were finally improved.
Breaking Changes
- Remove
Toplevel::nested
(which was a rather ugly hack), replace with configurableErrorAction
s. - Remove partial shutdown mechanism; replace with
NestedSubsystem::initiate_shutdown()
andNestedSubsystem::join()
. - Add
SubsystemHandle::wait_for_children()
. - Remove
Toplevel::start
. Instead, add a single subsystem toToplevel::new
, which can then spawn all further subsystems. - Rework
SubsystemHandle::start
; it now takes aSubsystemBuilder
object that provides further subsystem configuration options. - Logging framework was changed from
log
totracing
. - Minimum Supported Rust Version (MSRV) is now
1.63.0
.
The rest of the API is almost identical and migration should be mostly straight forward.