Unicode character "confusable" detection and "skeleton" computation, specified by the Unicode Standard Annex #39. These functions are for working with strings that appear nearly identical once rendered, but do not compare as equal.
extern crate unicode_skeleton;
use unicode_skeleton::{UnicodeSkeleton, confusable};
fn main() {
assert_eq!("𝔭𝒶ỿ𝕡𝕒ℓ".skeleton_chars().collect::<String>(), "paypal");
assert!(confusable("ℝ𝓊𝓈𝓉", "Rust"));
}
Adding the following to your Cargo.toml
to use:
[dependencies]
unicode_skeleton = "0.1.1"