Diffstat (limited to 'src/any/static_wrapper.rs')
| -rw-r--r-- | src/any/static_wrapper.rs | 28 |
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 } |