# SNAFU user's guide

Looking for quick help or answers? Please see the
[troubleshooting](guide::troubleshooting) page.

---

Start by getting a high-level idea of what SNAFU can do by looking at
the [quick example](crate) and some [more examples](guide::examples),
then take a peek at [our design philosophy](guide::philosophy).

For more advanced usage, take a deeper dive into [what the `Snafu`
macro generates](guide::what_code_is_generated), how to create [opaque
error types](guide::opaque), how to create [error
structs](guide::structs), and how to use [generic types and
lifetimes](guide::generics).

For optional features of the crate, see our [list of feature
flags](guide::feature_flags).

If you are targeting an older release of Rust, you will be
interested in [the compatibility section](guide::compatibility).

For upgrading from a previous version, review the [upgrading
guide](guide::upgrading).

For comparisons and migration tips from another error library,
see the [comparison list](guide::comparison).
