Struct rustc_middle::mir::generic_graphviz::GraphvizWriter
source · pub struct GraphvizWriter<'a, G: DirectedGraph + Successors + StartNode, 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 + Successors + StartNode, 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 + Successors + StartNode, 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> Freeze for GraphvizWriter<'a, G, NodeContentFn, EdgeLabelsFn>
impl<'a, G, NodeContentFn, EdgeLabelsFn> RefUnwindSafe for GraphvizWriter<'a, G, NodeContentFn, EdgeLabelsFn>
impl<'a, G, NodeContentFn, EdgeLabelsFn> Send for GraphvizWriter<'a, G, NodeContentFn, EdgeLabelsFn>
impl<'a, G, NodeContentFn, EdgeLabelsFn> Sync for GraphvizWriter<'a, G, NodeContentFn, EdgeLabelsFn>
impl<'a, G, NodeContentFn, EdgeLabelsFn> Unpin for GraphvizWriter<'a, G, NodeContentFn, EdgeLabelsFn>
impl<'a, G, NodeContentFn, EdgeLabelsFn> UnwindSafe for GraphvizWriter<'a, G, NodeContentFn, EdgeLabelsFn>
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<T> Filterable for T
impl<T> Filterable for T
source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
Creates a filterable data provider with the given name for debugging. Read more
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§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<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
source§impl<I, T> UpcastFrom<I, T> for T
impl<I, T> UpcastFrom<I, T> for T
fn upcast_from(from: T, _tcx: I) -> 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_error: &CycleError, _guar: ErrorGuaranteed, ) -> T
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeSendSync for 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.