Skip to content

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.

Merge request reports