Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/syntax/src/token_text.rs')
| -rw-r--r-- | crates/syntax/src/token_text.rs | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/crates/syntax/src/token_text.rs b/crates/syntax/src/token_text.rs deleted file mode 100644 index e69deb49ce..0000000000 --- a/crates/syntax/src/token_text.rs +++ /dev/null @@ -1,102 +0,0 @@ -//! Yet another version of owned string, backed by a syntax tree token. - -use std::{cmp::Ordering, fmt, ops}; - -use rowan::GreenToken; -use smol_str::SmolStr; - -pub struct TokenText<'a>(pub(crate) Repr<'a>); - -pub(crate) enum Repr<'a> { - Borrowed(&'a str), - Owned(GreenToken), -} - -impl<'a> TokenText<'a> { - pub fn borrowed(text: &'a str) -> Self { - TokenText(Repr::Borrowed(text)) - } - - pub(crate) fn owned(green: GreenToken) -> Self { - TokenText(Repr::Owned(green)) - } - - pub fn as_str(&self) -> &str { - match &self.0 { - &Repr::Borrowed(it) => it, - Repr::Owned(green) => green.text(), - } - } -} - -impl ops::Deref for TokenText<'_> { - type Target = str; - - fn deref(&self) -> &str { - self.as_str() - } -} -impl AsRef<str> for TokenText<'_> { - fn as_ref(&self) -> &str { - self.as_str() - } -} - -impl From<TokenText<'_>> for String { - fn from(token_text: TokenText<'_>) -> Self { - token_text.as_str().into() - } -} - -impl From<TokenText<'_>> for SmolStr { - fn from(token_text: TokenText<'_>) -> Self { - SmolStr::new(token_text.as_str()) - } -} - -impl PartialEq<&'_ str> for TokenText<'_> { - fn eq(&self, other: &&str) -> bool { - self.as_str() == *other - } -} -impl PartialEq<TokenText<'_>> for &'_ str { - fn eq(&self, other: &TokenText<'_>) -> bool { - other == self - } -} -impl PartialEq<String> for TokenText<'_> { - fn eq(&self, other: &String) -> bool { - self.as_str() == other.as_str() - } -} -impl PartialEq<TokenText<'_>> for String { - fn eq(&self, other: &TokenText<'_>) -> bool { - other == self - } -} -impl PartialEq for TokenText<'_> { - fn eq(&self, other: &TokenText<'_>) -> bool { - self.as_str() == other.as_str() - } -} -impl Eq for TokenText<'_> {} -impl Ord for TokenText<'_> { - fn cmp(&self, other: &Self) -> Ordering { - self.as_str().cmp(other.as_str()) - } -} -impl PartialOrd for TokenText<'_> { - fn partial_cmp(&self, other: &Self) -> Option<Ordering> { - Some(self.cmp(other)) - } -} -impl fmt::Display for TokenText<'_> { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt::Display::fmt(self.as_str(), f) - } -} -impl fmt::Debug for TokenText<'_> { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt::Debug::fmt(self.as_str(), f) - } -} |