Unnamed repository; edit this file 'description' to name the repository.
Add assertion for TextSized impls
CAD97 2020-03-24
parent ba1fd73 · commit 3b9d00e
-rw-r--r--lib/text-size/src/traits.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/text-size/src/traits.rs b/lib/text-size/src/traits.rs
index 6f3462bee5..018a62cb76 100644
--- a/lib/text-size/src/traits.rs
+++ b/lib/text-size/src/traits.rs
@@ -34,3 +34,23 @@ impl TextSized for char {
(self.len_utf8() as u32).into()
}
}
+
+// assertion shape from static_assertions::assert_impl_all!
+const _: fn() = || {
+ use std::borrow::Cow;
+
+ fn assert_impl<T: TextSized>() {}
+
+ assert_impl::<&String>();
+ assert_impl::<&Cow<str>>();
+
+ struct StringLike {}
+ impl Deref for StringLike {
+ type Target = str;
+ fn deref(&self) -> &str {
+ unreachable!()
+ }
+ }
+
+ assert_impl::<&StringLike>();
+};