# 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).