trait Printer {
    fn print(&self);
}

struct LaserPrinter {
}

impl Printer for LaserPrinter {
    fn print(&self) {
        println!("LaserPrinterで印刷しています。");
    }
}

struct InkjetPrinter {
}

impl Printer for InkjetPrinter {
    fn print(&self) {
        println!("InkjetPrinterで印刷しています。");
    }
}

fn main() {
    let laser_printer = LaserPrinter {};
    let inkjet_printer = InkjetPrinter {};

    laser_printer.print();
    inkjet_printer.print();
}