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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
source§impl<P> IntoQueryParam<P> for P
impl<P> IntoQueryParam<P> for P
fn into_query_param(self) -> P
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, cycle: &[QueryInfo], _guar: ErrorGuaranteed ) -> 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.