2 个版本

0.1.1 2023年9月15日
0.1.0 2019年8月23日

#13#code-point

MIT 许可证

50KB
1K SLoC

mileage

该crate已被弃用,因为现在有更好的方式来完成其贡献。

  • CharRange 是一个简单的码点范围,实际上等同于 std::ops::RangeInclusive<char>。std范围已经支持迭代 char 很长时间了。
  • CharSet 是一组码点,作为紧凑范围的有序向量的处理。 icu_collections 提供了一个 CodePointInversionList
  • CharTrie 是一个静态码点集合,针对宽码点覆盖进行了优化。通常情况下,更简单的反转列表就足够了。
  • CharMap 是从码点(范围)到值的映射。 icu_collections 提供了一个具有映射功能的 CodePointTrie

功能

  • set:添加 CharSet 类型。
  • trie:添加 CharTrie 类型。
  • map:添加 CharMap 引用类型。
  • owned-set:添加 CharSetBuf 类型。
  • new-trie:添加对 CharTrie 的代码生成支持。
  • par-iter:添加 rayon::IntoParallelIterator 的实现。

示例

fn main() {
    use mileage::CharRange;
    for ch in CharRange::from('a'..='z') {
        // ch is each codepoint in lowercase ascii in sorted order
        dbg!(ch);
    }
    for ch in CharRange::from(..) {
        // ch is every valid char in sorted order
        dbg!(ch);
    }
}

计划中(最终)

  • CharMapRefMut
  • CharMapBuf

依赖项

~0–760KB
~16K SLoC