# Crate failure [−] [src]

An experimental new error-handling library.

The primary items exported by this library are:

- `Fail`: a new trait for custom error types in Rust.
- `Error`: a wrapper around `Fail` types to make it easy to coalesce them at higher levels.

As a general rule, library authors should create their own error types and implement `Fail` for them, whereas application authors should primarily deal with the `Error` type. There are exceptions to this rule, though, in both directions, and users should do whatever seems most appropriate to their situation.

## Macros

bail | Exits a function early with an `Error`.
ensure | Exits a function early with an `Error` if the condition is not satisfied.
format_err | Constructs an `Error` using the standard string interpolation syntax.

## Structs

Backtrace | A `Backtrace`.
Causes | A iterator over the causes of a `Fail`
Compat | A compatibility wrapper around an error type from this crate.
Context | An error with context around it.
Error | The `Error` type, which can contain any failure.
SyncFailure | Wrapper for `std` errors to make them `Sync`.

## Traits

Fail | The `Fail` trait.
ResultExt | Extension methods for `Result`.

## Functions

err_msg | Constructs a `Fail` type from a string.

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)