pub trait Print { type Output; // Required method fn print(&self, printer: &Printer<'_>) -> Self::Output; }