We can now convert Rust Errors to C++ exceptions. At the Rust->C++ FFI boundary, Result<T, Error> will cause Error to be converted to and thrown as a C++ exception.
This was the last function using a shell script, so this allows us to get rid of tar, coreutils, bash etc.