pub trait Builder: Default {
type Entity: Entity;
const NAME: &'static str;
// Required methods
fn expected_length(&self) -> usize;
fn write<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write;
fn build(&self) -> Self::Entity;
}