Create a graphviz representation of the obligation forest. Given a directory this will
create files with name of the format <counter>_<description>.gv. The counter is
global and is maintained internally.
Calling this will do nothing unless the environment variable
DUMP_OBLIGATION_FOREST_GRAPHVIZ is defined.
A few post-processing that you might want to do make the forest easier to visualize:
sed 's,std::[a-z]*::,,g' — Deletes the std::<package>:: prefix of paths.
sed 's,"Binder(TraitPredicate(<\(.*\)>)) (\([^)]*\))","\1 (\2)",' — Transforms
Binder(TraitPredicate(<predicate>)) into just <predicate>.
Return the total number of nodes in the forest that have not
yet been fully resolved.
Registers an obligation
This CAN be done in a snapshot
Convert all remaining obligations to the given error.
This cannot be done during a snapshot.
Returns the set of obligations that are in a pending state.
Perform a pass through the obligation list. This must
be called in a loop until outcome.stalled is false.
This CANNOT be unrolled (presently, at least).
Must return a DOT compatible identifier naming the graph.
Maps n to a unique identifier with respect to self. The implementor is responsible for ensuring that the returned name is a valid DOT identifier. Read more
Maps n to a label that will be used in the rendered output. The label need not be unique, and may be the empty string; the default is just the output from node_id. Read more
Maps e to a label that will be used in the rendered output. The label need not be unique, and may be the empty string; the default is in fact the empty string. Read more
Maps n to one of the [graphviz shape names][1]. If None is returned, no shape attribute is specified. Read more
Maps n to a style that will be used in the rendered output.
Maps e to a style that will be used in the rendered output.
Returns all the nodes in this graph.
Returns all of the edges in this graph.
The source node for edge.
The target node for edge.
🔬 This is a nightly-only experimental API. (try_from)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from)
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
type Error = <U as TryFrom<T>>::Error
🔬 This is a nightly-only experimental API. (try_from)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from)
🔬 This is a nightly-only experimental API. (get_type_id)
this method will likely be replaced by an associated static
Create an error for a missing method specialization. Defaults to panicking with type, trait & method names. S is the encoder/decoder state type, T is the type being encoded/decoded, and the arguments are the names of the trait and method that should've been overridden. Read more