Unnamed repository; edit this file 'description' to name the repository.
Add assertion for TextSized impls
| -rw-r--r-- | lib/text-size/src/traits.rs | 20 |
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>(); +}; |