Crate tor_error

Source
Expand description

§tor-error

Support for error handling in Tor and Arti

Primarily, this crate provides the ErrorKind enum, and associated HasKind trait.

There is also some other miscellany, supporting error handling in crates higher up the dependency stack.

§Features

backtrace – Enable backtraces in internal errors. (On by default.)

§Experimental and unstable features

Note that the APIs enabled by these features are NOT covered by semantic versioning1 guarantees: we might break them or remove them between patch versions.

  • experimental-api: Add additional non-stable APIs to our public interfaces.

License: MIT OR Apache-2.0


  1. Remember, semantic versioning is what makes various cargo features work reliably. To be explicit: if you want cargo update to only make safe changes, then you cannot enable these features. 

Modules§

internal 🔒
The InternalError type, macro for generating it, etc.
misc 🔒
Miscellaneous straightforward error structs for particular situations
report 🔒
The Report type which reports errors nicely
retriable 🔒
Declare the RetryTime enumeration and related code.
sealed 🔒
Sealed
tracingtracing
Support for using tor-error with the tracing crate.

Macros§

bad_api_usage
Create a bad API usage error, including a message like format!, and capturing this call site
debug_reporttracing
Log a report for err at level DEBUG (or higher if it is a bug).
define_asref_dyn_std_error
Defines AsRef<dyn StdError + 'static> for a type implementing StdError
error_reporttracing
Log a report for err at level ERROR
event_reporttracing
Log a Report of a provided error at a given level, or a higher level if appropriate.
info_reporttracing
Log a report for err at level INFO (or higher if it is a bug).
internal
Create an internal error, including a message like format!, and capturing this call site
into_bad_api_usage
Helper for converting an error into an bad API usage error
into_internal
Helper for converting an error into an internal error
trace_reporttracing
Log a report for err at level TRACE (or higher if it is a bug).
warn_reporttracing
Log a report for err at level WARN

Structs§

Bug
Programming error (a bug)
LooseCmpRetryTime
A RetryTime wrapped so that it compares according to RetryTime::loose_cmp
Report
Wraps any Error, providing a nicely-reporting Display impl
ReportHelper
Helper type for reporting errors that are concrete implementors of StdError
Truncated
Error type indicating that an input was incomplete, and could not be processed.

Enums§

AbsRetryTime
An absolute RetryTime.
ErrorKind
Classification of an error arising from Arti’s Tor operations
RetryTime
A description of when an operation may be retried.

Traits§

ErrorReport
Extension trait providing .report() method on concrete errors
HasKind
Errors that can be categorized as belonging to an ErrorKind
HasRetryTime
Trait for an error object that can tell us when the operation which generated it can be retried.

Functions§

report_and_exit
Report the error E to stderr, and exit the program