summaryrefslogtreecommitdiffstats
path: root/vendor/kstring/src/backend.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/kstring/src/backend.rs')
-rw-r--r--vendor/kstring/src/backend.rs97
1 files changed, 0 insertions, 97 deletions
diff --git a/vendor/kstring/src/backend.rs b/vendor/kstring/src/backend.rs
deleted file mode 100644
index 3827082f1..000000000
--- a/vendor/kstring/src/backend.rs
+++ /dev/null
@@ -1,97 +0,0 @@
-#[cfg(feature = "arc")]
-pub(crate) type DefaultStr = crate::backend::ArcStr;
-#[cfg(not(feature = "arc"))]
-pub(crate) type DefaultStr = crate::backend::BoxedStr;
-
-/// Fast allocations, O(n) clones
-pub type BoxedStr = Box<str>;
-static_assertions::assert_eq_size!(DefaultStr, BoxedStr);
-
-/// Cross-thread, O(1) clones
-pub type ArcStr = std::sync::Arc<str>;
-static_assertions::assert_eq_size!(DefaultStr, ArcStr);
-
-/// O(1) clones
-pub type RcStr = std::rc::Rc<str>;
-static_assertions::assert_eq_size!(DefaultStr, RcStr);
-
-/// Abstract over different type of heap-allocated strings
-pub trait HeapStr: std::fmt::Debug + Clone + private::Sealed {
- fn from_str(other: &str) -> Self;
- fn from_string(other: String) -> Self;
- fn from_boxed_str(other: BoxedStr) -> Self;
- fn as_str(&self) -> &str;
-}
-
-impl HeapStr for BoxedStr {
- #[inline]
- fn from_str(other: &str) -> Self {
- other.into()
- }
-
- #[inline]
- fn from_string(other: String) -> Self {
- other.into_boxed_str()
- }
-
- #[inline]
- fn from_boxed_str(other: BoxedStr) -> Self {
- other
- }
-
- #[inline]
- fn as_str(&self) -> &str {
- self
- }
-}
-
-impl HeapStr for ArcStr {
- #[inline]
- fn from_str(other: &str) -> Self {
- other.into()
- }
-
- #[inline]
- fn from_string(other: String) -> Self {
- other.into_boxed_str().into()
- }
-
- #[inline]
- fn from_boxed_str(other: BoxedStr) -> Self {
- other.into()
- }
-
- #[inline]
- fn as_str(&self) -> &str {
- self
- }
-}
-
-impl HeapStr for RcStr {
- #[inline]
- fn from_str(other: &str) -> Self {
- other.into()
- }
-
- #[inline]
- fn from_string(other: String) -> Self {
- other.into_boxed_str().into()
- }
-
- #[inline]
- fn from_boxed_str(other: BoxedStr) -> Self {
- other.into()
- }
-
- #[inline]
- fn as_str(&self) -> &str {
- self
- }
-}
-
-pub(crate) mod private {
- pub trait Sealed {}
- impl Sealed for super::BoxedStr {}
- impl Sealed for super::ArcStr {}
- impl Sealed for super::RcStr {}
-}