Function spinoso_symbol::source ·
pub fn unicode_case_eq<T, U>( interner: &T, left: U, right: U, fold: CaseFold ) -> Result<Option<bool>, T::Error>where T: Intern<Symbol = U>, U: Copy,
Compare the byte contents of two symbols using Unicode case-folding comparison for equality.
The byte slice associated with each symbol is resolved via the given
interner. Unresolved symbols are compared as if they resolve to
This comparison function attempts to convert each symbol’s byte content to a
str. If both symbols resolve to UTF-8 contents, Unicode
case folding is used when comparing the contents and this function returns
Ok(Some(bool)). If neither symbol resolves to UTF-8 contents, this
function falls back to
ascii_casecmp and returns
Otherwise, the two symbols have byte contents with different encodings and
Ok(None) is returned.
This function can be used to implement
Symbol#casecmp? for the
Symbol type defined in Ruby Core.
If the interner returns an error while retrieving a symbol, that error is