Improve error handling in the `raw` and `screen` modules
The current implementations of RawTerminal
and AlternateScreen
handle I/O errors in drop
by panicking. This MR changes this behavior to ignoring such errors instead. This is how similar cases are handled in the standard library (File
, maybe others).
I also removed panicking from AlternateScreen::from
. That API seemed a bit odd in general, so I used this opportunity to make it more consistent with that of the raw
module by replacing said function with an IntoAlternateScreen
trait.
And yes, this is definitely a breaking change, so the version number will need to be incremented to 2.0.0 if this gets merged.