* the InitConfigBuilder non-miette error goes away
* creating an InitConfig is no longer faillible for no reason
* the "builder" style is consistent between the two config structs
Also change the concept of a completion handler to instead sending a
synthetic "process completed" event down the same path as usual.
That makes handling completion the job of the action handler, but also
means it's immediately possible to launch a process or do an action in
response to the process completing. Win win!
That has a number of advantages:
- #193 the build.rs is only run for the CLI, so the Windows manifest is
not embedded in the library anymore, opening it up for downstreams.
- it sets the stage for decoupling the version numbers of the CLI and
library, to have the library increase its major more often, while the
CLI retains compatibility further… that is, to have both follow semver
- it removes the CLI-only dependencies from the library
- it makes compilation a bit faster as compiling the library and the
CLI's other dependencies can happen in parallel
One major disadvantage:
- installing via cargo changes from watchexec to watchexec-cli. Most
installs are from prebuilt and from packages, but that's still a
potential stumble.
And of course, the CLI APIs in the library are gone (they were already
deprecated, though).
We also take this opportunity to get rid of the clear_screen code and
use our new clearscreen library. #99#171#185