summaryrefslogtreecommitdiff
path: root/vendor/unicode-security/src/confusable_detection.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/unicode-security/src/confusable_detection.rs')
-rw-r--r--vendor/unicode-security/src/confusable_detection.rs39
1 files changed, 0 insertions, 39 deletions
diff --git a/vendor/unicode-security/src/confusable_detection.rs b/vendor/unicode-security/src/confusable_detection.rs
deleted file mode 100644
index dd1a0d25..00000000
--- a/vendor/unicode-security/src/confusable_detection.rs
+++ /dev/null
@@ -1,39 +0,0 @@
-//! [Confusable detection](https://www.unicode.org/reports/tr39/#Confusable_Detection)
-
-use core::iter;
-
-enum OnceOrMore<T, I> {
- Once(iter::Once<T>),
- More(I),
-}
-
-impl<T, I> Iterator for OnceOrMore<T, I>
-where
- I: Iterator<Item = T>,
-{
- type Item = T;
-
- fn next(&mut self) -> Option<T> {
- use OnceOrMore::*;
- match self {
- Once(v) => v.next(),
- More(i) => i.next(),
- }
- }
-}
-
-type StaticSliceIterCloned = core::iter::Cloned<core::slice::Iter<'static, char>>;
-
-fn char_prototype(c: char) -> OnceOrMore<char, StaticSliceIterCloned> {
- use crate::tables::confusable_detection::char_confusable_prototype;
- match char_confusable_prototype(c) {
- None => OnceOrMore::Once(iter::once(c)),
- Some(l) => OnceOrMore::More(l.iter().cloned()),
- }
-}
-
-/// Calculate skeleton for string, as defined by UTS 39
-pub fn skeleton(s: &str) -> impl Iterator<Item = char> + '_ {
- use unicode_normalization::UnicodeNormalization;
- s.chars().nfd().flat_map(char_prototype).nfd()
-}