pub trait Target { type Finished; fn as_mut_string(&mut self) -> &mut String; fn finish(self) -> Self::Finished; }