Jake Goulding
Jake Goulding
There’s no community consensus around this, but I’d like to start with “changing the minimum required Rust version causes a semver-incompatible release” (i.e. major version).
We should make sure that library authors use `default-features=false` and add in what they need. Tangentially related to #113 and #84
Terms: - attribute - context selector - user field - opaque error
For example, we should say that `snafu(display)` is only applicable directly on a context selector.
Right now, it's just ```rust pub trait ErrorCompat { ``` Should it be ```rust pub trait ErrorCompat: std::error::Error { ``` ?
- the macro creates structs from the enum variants. Why is this? Why not just use enum variants? - when use structs, when use variants?
From @Canop: > - what's exactly `context` ? A kind of unwrap decorator ? How exactly is it added ? > - what's the added cost (unwrapping complexity, structure creation...
This will be obviously biased, but we can compare against what is in the documentation as best we can.
Maybe also to the README? Things to include: - Easy `Display` - Context - Procedural macro - Backtraces - Forwards shims - Result & Option - Compatibility