This crate provides little utilities to declare callbacks inside a scope, that get executed on success, failure, or exit on that scope.
This is different than the ScopeGuard crate does, because here it's dependent on the scope's outcome which callbacks should run.
A guard is a handle to schedule closures on.
A handle is a handle back to a deferred closure.
In order to cancel the closure, and get back the value the closure was going to be called with,
A trait to annotate whether a type is
Executes the scope