pub fn encode<N, IT>(i: IT) -> Result<N, EncodeError>where
    N: PackedValue,
    IT: Iterator<Item = char>,