I have a library that needs to handle several different types of errors: OS errors, errors generated in the library, Tokio errors and error codes returned from a remote service it connects to.
What's the idiomatic way to handle those in code? Are there any tutorials?