1 个不稳定版本

0.2.0 2022年6月30日

#35#charset

Download history 18/week @ 2024-03-16 27/week @ 2024-03-23 41/week @ 2024-03-30 96/week @ 2024-04-06 73/week @ 2024-04-13 53/week @ 2024-04-20 35/week @ 2024-04-27 135/week @ 2024-05-04 110/week @ 2024-05-11 43/week @ 2024-05-18 116/week @ 2024-05-25 86/week @ 2024-06-01 58/week @ 2024-06-08 39/week @ 2024-06-15 37/week @ 2024-06-22 6/week @ 2024-06-29

150 每月下载量
用于 encoding-next

MIT 许可证

20KB
266

  • 字符编码接口。
  • 原始增量接口

  • raw_ 开头名称的方法构成了原始增量接口,
  • 为编码器和解码器提供的最低API。
  • 此接口将整个输入分为四部分
    • 已处理的 字节不会影响未来结果。
    • 未处理的 字节可能会影响未来结果
  • 并且可以成为未来输入的有问题序列的一部分。
    • 有问题 的字节是导致错误条件的第一个字节。
    • 剩余的 字节尚未处理或读取,
  • 因此调用者应再次提供任何剩余的字节。
  • 以下图说明了连续的 raw_feed 调用示例
  • 第1次 raw_feed :第2次 raw_feed :第3次 raw_feed
  • ----------+----:---------------:--+--+---------
  •       |    :               :  |  |
    
  • ----------+----:---------------:--+--+---------
  • 已处理 未处理 | 剩余的
  •                           problematic
    
  • 由于这些部分可以跨越多个输入序列到 raw_feed
  • raw_feed 返回两个偏移量(一个可选的),
  • 调用者可以使用这些偏移量跟踪有问题序列。
  • 第一个偏移量(元组中的第一个 usize)指向第一个未处理的字节,
  • 或者为零,如果未处理的字节在当前调用之前已经开始。
  • (第一个未处理的字节也可以在偏移量 0 处,
  • 这对调用者来说没有区别。)
  • 第二个偏移量(在 CodecError 结构体中的 upto 字段,如果有的话),
  • 指向第一个剩余的字节。
  • 如果调用者需要通过有问题序列恢复错误,
  • 那么调用者开始保存未处理的字节,当第一个偏移量小于输入长度时,
  • 在第一个偏移量为零时追加任何新的未处理字节,
  • 当第一个偏移量变为非零时丢弃未处理字节,
  • 在第一个偏移量小于输入长度时保存新的未处理字节。
  • 然后调用者检查错误条件
  • 并可以使用保存的未处理字节进行错误恢复。
  • 或者,如果调用者只想用固定字符串(如 U+FFFD)
  • 替换有问题序列,
  • 则只需丢弃第一个序列并输出固定字符串作为错误。
  • 然后必须从第二个偏移量再次提供输入字节。

没有运行时依赖