# SNAFU user's guide

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

---

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

For more advanced usage, take a deeper dive into [how the `Snafu`
macro works](guide::the_macro), how to create [opaque error
types](guide::opaque), how to create [error structs](guide::structs),
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).
