pub trait Flush { fn flush(&self) -> Result<()>; }
Both InputScope and OutputScope share the ability to flush the recorded data.
Flush does nothing by default.