With `traced`, attaches an auto-generated error code to every variant (or the
struct) that has no explicit `#[oopsie(code = "...")]`, surfaced via
`Diagnostic::oopsie_error_code`. The generated code is the item's path,
`module_path::Type::Variant`; `transparent` items are excluded.
`traced(code = false)` turns the auto code off, and `traced(code(r#type = Path))`
overrides the error-code type (default `ErrorCode`).
Forms: `traced(code)`, `traced(code = true)`, `traced(code = false)`,
`traced(code(true))`, `traced(code(false))`,
`traced(code(r#type = Path, enabled = ...))`.
### Example
```
use oopsie::Diagnostic as _;
#[oopsie::oopsie(traced(code(r#type = ::oopsie::ErrorCode)))]
pub enum AppError {
#[oopsie("boom")]
Boom,
}
fn main() {
let err = app_oopsies::Boom.build();
assert!(err.oopsie_error_code().is_some());
}
```