Implement `Deref<Target=T>` for `RvalueReference<T>` and `ConstRvalueReference<T>`
Thus, with `arbitrary_self_types` enabled, methods on `T` can have `self` of types of `RvalueReference<T>` and `ConstRvalueReference<T>`.
PiperOrigin-RevId: 518955445
diff --git a/support/ctor.rs b/support/ctor.rs
index 747653b..0e51065 100644
--- a/support/ctor.rs
+++ b/support/ctor.rs
@@ -263,6 +263,13 @@
}
}
+impl<T> Deref for RvalueReference<'_, T> {
+ type Target = T;
+ fn deref(&self) -> &Self::Target {
+ self.get_ref()
+ }
+}
+
impl<'a, T> Ctor for RvalueReference<'a, T>
where
T: CtorNew<Self>,
@@ -292,6 +299,13 @@
}
}
+impl<T> Deref for ConstRvalueReference<'_, T> {
+ type Target = T;
+ fn deref(&self) -> &Self::Target {
+ self.0
+ }
+}
+
impl<'a, T> Ctor for ConstRvalueReference<'a, T>
where
T: CtorNew<Self>,