use crate::{Tr, TrArgs, TrDyn, TrRich};
use mf2_runtime::{ErrorSink, Formatter, PartSink, Sink};
pub trait Message {
fn write(&self, f: &Formatter<'_>, out: &mut dyn Sink, errs: &mut dyn ErrorSink);
fn parts(&self, f: &Formatter<'_>, out: &mut dyn PartSink, errs: &mut dyn ErrorSink);
}
impl Message for Tr {
fn write(&self, f: &Formatter<'_>, out: &mut dyn Sink, errs: &mut dyn ErrorSink) {
Tr::write(*self, f, out, errs);
}
fn parts(&self, f: &Formatter<'_>, out: &mut dyn PartSink, errs: &mut dyn ErrorSink) {
Tr::parts(*self, f, out, errs);
}
}
impl Message for TrArgs {
fn write(&self, f: &Formatter<'_>, out: &mut dyn Sink, errs: &mut dyn ErrorSink) {
TrArgs::write(self, f, out, errs);
}
fn parts(&self, f: &Formatter<'_>, out: &mut dyn PartSink, errs: &mut dyn ErrorSink) {
TrArgs::parts(self, f, out, errs);
}
}
impl Message for TrRich {
fn write(&self, f: &Formatter<'_>, out: &mut dyn Sink, errs: &mut dyn ErrorSink) {
TrRich::write(self, f, out, errs);
}
fn parts(&self, f: &Formatter<'_>, out: &mut dyn PartSink, errs: &mut dyn ErrorSink) {
TrRich::parts(self, f, out, errs);
}
}
impl Message for TrDyn {
fn write(&self, f: &Formatter<'_>, out: &mut dyn Sink, errs: &mut dyn ErrorSink) {
TrDyn::write(self, f, out, errs);
}
fn parts(&self, f: &Formatter<'_>, out: &mut dyn PartSink, errs: &mut dyn ErrorSink) {
TrDyn::parts(self, f, out, errs);
}
}