pub trait TreeDisplayAdapter {
type Node: ?Sized;
type Context: TreeDisplayContext<Self::Node>;
// Required methods
fn write_node(
&self,
node: &Self::Node,
context: &Self::Context,
formatter: &mut Formatter<'_>,
) -> Result;
fn visit_children(
&self,
node: &Self::Node,
visit: &mut dyn FnMut(&str, &Self::Node, bool) -> Result,
) -> Result;
// Provided method
fn write_details(
&self,
node: &Self::Node,
context: &Self::Context,
formatter: &mut IndentedFormatter<'_, '_>,
) -> Result { ... }
}Expand description
Adapts a domain-specific node and traversal context to the shared tree renderers.
Required Associated Types§
Sourcetype Context: TreeDisplayContext<Self::Node>
type Context: TreeDisplayContext<Self::Node>
State made available while each node is rendered.
Required Methods§
Sourcefn write_node(
&self,
node: &Self::Node,
context: &Self::Context,
formatter: &mut Formatter<'_>,
) -> Result
fn write_node( &self, node: &Self::Node, context: &Self::Context, formatter: &mut Formatter<'_>, ) -> Result
Write the node’s display content.
The indented renderer writes name: first, so implementations normally write
space-prefixed annotations. The branch renderer uses this as the complete node label.
Sourcefn visit_children(
&self,
node: &Self::Node,
visit: &mut dyn FnMut(&str, &Self::Node, bool) -> Result,
) -> Result
fn visit_children( &self, node: &Self::Node, visit: &mut dyn FnMut(&str, &Self::Node, bool) -> Result, ) -> Result
Visit each named child in display order.
The final argument to visit must be true only for the last child. Renderers call the
visitor synchronously, so adapters may pass either stored or temporarily owned nodes.
Provided Methods§
Sourcefn write_details(
&self,
node: &Self::Node,
context: &Self::Context,
formatter: &mut IndentedFormatter<'_, '_>,
) -> Result
fn write_details( &self, node: &Self::Node, context: &Self::Context, formatter: &mut IndentedFormatter<'_, '_>, ) -> Result
Write detail lines beneath an indented node header.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".