Diffstat (limited to 'src/any/static_wrapper.rs')
-rw-r--r--src/any/static_wrapper.rs28
1 files changed, 20 insertions, 8 deletions
diff --git a/src/any/static_wrapper.rs b/src/any/static_wrapper.rs
index fb719e0..4acb200 100644
--- a/src/any/static_wrapper.rs
+++ b/src/any/static_wrapper.rs
@@ -7,19 +7,31 @@ use super::*;
#[repr(transparent)]
pub struct OwnedStatic<T: ?Sized>(pub T);
-bijective_higher_ranked_type! {
- pub type DynOwnedStatic['lt][T][]: MaybeSized['lt][]
- for<'a>
- (OwnedStatic<T>)
- where {
- T: ?Sized + 'lt
- }
+// bijective_higher_ranked_type! {
+// pub type DynOwnedStatic['lt][T][]: MaybeSized['lt][]
+// for<'a>
+// (OwnedStatic<T>)
+// where {
+// T: ?Sized + 'lt
+// }
+// }
+
+pub struct DynOwnedStatic<T: ?Sized>(PhantomData<fn() -> *const T>);
+
+impl<'a, 'lt, T: ?Sized + 'lt> MaybeSized::LowerForLt<'a, 'lt, &'a (&'lt (),)>
+ for DynOwnedStatic<T>
+{
+ type T = OwnedStatic<T>;
+}
+
+impl<'a, 'lt, T: ?Sized + 'lt> MaybeSized::RaiseForLt<'a, 'lt, &'a (&'lt (),)> for OwnedStatic<T> {
+ type HigherRanked = DynOwnedStatic<T>;
}
bijective_higher_ranked_type! {
pub type [][T][]: TypeName[][]
for<'lt>
- (DynOwnedStatic<'lt, T>)
+ (DynOwnedStatic<T>)
where {
T: ?Sized + 'static
}