trait ChainFormatter {
// Required methods
fn format_root(
&mut self,
parent: &ChainItem,
context: &RewriteContext<'_>,
shape: Shape,
) -> Option<()>;
fn child_shape(
&self,
context: &RewriteContext<'_>,
shape: Shape,
) -> Option<Shape>;
fn format_children(
&mut self,
context: &RewriteContext<'_>,
child_shape: Shape,
) -> Option<()>;
fn format_last_child(
&mut self,
context: &RewriteContext<'_>,
shape: Shape,
child_shape: Shape,
) -> Option<()>;
fn join_rewrites(
&self,
context: &RewriteContext<'_>,
child_shape: Shape,
) -> Option<String>;
fn pure_root(&mut self) -> Option<String>;
}