A strategy how internal error codes from a lower architectural level are translated into enum error codes of an higher architectural level
How std::error::Error and later (when it is in stable) core::error::Error is implemented for all error enums.
The issue shall be concluded with a markdown file explaining the above points and showing some code snippets to illustrate them.
Detailed information
From @elBoberido
I found another solution in the zstd crate. They use derive_more with a feature flag to derive Error only on std. This makes would allow no_std on stable but without the Error trait. Something to think of.
Brief feature description
The error handling strategy must be documented.
enum
s as error codesenum
error codes of an higher architectural levelstd::error::Error
and later (when it is in stable)core::error::Error
is implemented for all error enums.The issue shall be concluded with a markdown file explaining the above points and showing some code snippets to illustrate them.
Detailed information
From @elBoberido
I found another solution in the zstd crate. They use
derive_more
with a feature flag to deriveError
only on std. This makes would allowno_std
on stable but without theError
trait. Something to think of.They basically did this
The attributes on the enum tags are quite similar to
thiserror
so it wouldn't be too hard to switch between the two crates.