Struct rustc_middle::mir::generic_graphviz::GraphvizWriter
source · pub struct GraphvizWriter<'a, G: DirectedGraph + WithSuccessors + WithStartNode + WithNumNodes, NodeContentFn: Fn(<G as DirectedGraph>::Node) -> Vec<String>, EdgeLabelsFn: Fn(<G as DirectedGraph>::Node) -> Vec<String>> {
graph: &'a G,
is_subgraph: bool,
graphviz_name: String,
graph_label: Option<String>,
node_content_fn: NodeContentFn,
edge_labels_fn: EdgeLabelsFn,
}
Fields§
§graph: &'a G
§is_subgraph: bool
§graphviz_name: String
§graph_label: Option<String>
§node_content_fn: NodeContentFn
§edge_labels_fn: EdgeLabelsFn
Implementations§
source§impl<'a, G: DirectedGraph + WithSuccessors + WithStartNode + WithNumNodes, NodeContentFn: Fn(<G as DirectedGraph>::Node) -> Vec<String>, EdgeLabelsFn: Fn(<G as DirectedGraph>::Node) -> Vec<String>> GraphvizWriter<'a, G, NodeContentFn, EdgeLabelsFn>
impl<'a, G: DirectedGraph + WithSuccessors + WithStartNode + WithNumNodes, NodeContentFn: Fn(<G as DirectedGraph>::Node) -> Vec<String>, EdgeLabelsFn: Fn(<G as DirectedGraph>::Node) -> Vec<String>> GraphvizWriter<'a, G, NodeContentFn, EdgeLabelsFn>
pub fn new(
graph: &'a G,
graphviz_name: &str,
node_content_fn: NodeContentFn,
edge_labels_fn: EdgeLabelsFn
) -> Self
pub fn set_graph_label(&mut self, graph_label: &str)
sourcepub fn write_graphviz<'tcx, W>(&self, tcx: TyCtxt<'tcx>, w: &mut W) -> Result<()>where
W: Write,
pub fn write_graphviz<'tcx, W>(&self, tcx: TyCtxt<'tcx>, w: &mut W) -> Result<()>where
W: Write,
Write a graphviz DOT of the graph
sourcepub fn write_node<W>(
&self,
node: G::Node,
dark_mode: bool,
w: &mut W
) -> Result<()>where
W: Write,
pub fn write_node<W>(
&self,
node: G::Node,
dark_mode: bool,
w: &mut W
) -> Result<()>where
W: Write,
Write a graphviz DOT node for the given node.
sourcefn write_edges<W>(&self, source: G::Node, w: &mut W) -> Result<()>where
W: Write,
fn write_edges<W>(&self, source: G::Node, w: &mut W) -> Result<()>where
W: Write,
Write graphviz DOT edges with labels between the given node and all of its successors.
sourcefn write_graph_label<W>(&self, label: &str, w: &mut W) -> Result<()>where
W: Write,
fn write_graph_label<W>(&self, label: &str, w: &mut W) -> Result<()>where
W: Write,
Write the graphviz DOT label for the overall graph. This is essentially a block of text that will appear below the graph.
fn node(&self, node: G::Node) -> String
Auto Trait Implementations§
impl<'a, G, NodeContentFn, EdgeLabelsFn> RefUnwindSafe for GraphvizWriter<'a, G, NodeContentFn, EdgeLabelsFn>where
EdgeLabelsFn: RefUnwindSafe,
G: RefUnwindSafe,
NodeContentFn: RefUnwindSafe,
impl<'a, G, NodeContentFn, EdgeLabelsFn> Send for GraphvizWriter<'a, G, NodeContentFn, EdgeLabelsFn>where
EdgeLabelsFn: Send,
G: Sync,
NodeContentFn: Send,
impl<'a, G, NodeContentFn, EdgeLabelsFn> Sync for GraphvizWriter<'a, G, NodeContentFn, EdgeLabelsFn>where
EdgeLabelsFn: Sync,
G: Sync,
NodeContentFn: Sync,
impl<'a, G, NodeContentFn, EdgeLabelsFn> Unpin for GraphvizWriter<'a, G, NodeContentFn, EdgeLabelsFn>where
EdgeLabelsFn: Unpin,
NodeContentFn: Unpin,
impl<'a, G, NodeContentFn, EdgeLabelsFn> UnwindSafe for GraphvizWriter<'a, G, NodeContentFn, EdgeLabelsFn>where
EdgeLabelsFn: UnwindSafe,
G: RefUnwindSafe,
NodeContentFn: UnwindSafe,
Blanket Implementations§
source§impl<T, R> InternIteratorElement<T, R> for T
impl<T, R> InternIteratorElement<T, R> for T
type Output = R
fn intern_with<I, F>(iter: I, f: F) -> <T as InternIteratorElement<T, R>>::Outputwhere
I: Iterator<Item = T>,
F: FnOnce(&[T]) -> R,
source§impl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
source§impl<'tcx, T> ToPredicate<'tcx, T> for T
impl<'tcx, T> ToPredicate<'tcx, T> for T
fn to_predicate(self, _tcx: TyCtxt<'tcx>) -> T
source§impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
default fn from_cycle_error(tcx: Tcx, _: &[QueryInfo]) -> T
Layout§
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.