pub trait Builder: Sized {
type Instance;
fn set_mapping(&mut self, symbol: u16, code: Code) -> Result<()>;
fn finish(self) -> Self::Instance;
fn restore_canonical_huffman_codes(
self,
bitwidthes: &[u8]
) -> Result<Self::Instance> { ... }
}