diff options
| author | Zachary S <zasample18+github@gmail.com> | 2024-11-19 13:38:49 -0600 |
|---|---|---|
| committer | Zachary S <zasample18+github@gmail.com> | 2024-11-19 16:25:54 -0600 |
| commit | 2d2225950fa193add623c430d2d2beb61a798e95 (patch) | |
| tree | eb5f94a8bd36e668cc61b1d7bdae96c227843c39 | |
| parent | dbd35041f57cb613357dc434d39190811de99e24 (diff) | |
| download | rust-2d2225950fa193add623c430d2d2beb61a798e95.tar.gz rust-2d2225950fa193add623c430d2d2beb61a798e95.zip | |
UniqueRc: platform-specific AsFd/Handle/etc impls to mirror Rc
| -rw-r--r-- | library/std/src/lib.rs | 1 | ||||
| -rw-r--r-- | library/std/src/os/fd/owned.rs | 8 | ||||
| -rw-r--r-- | library/std/src/os/fd/raw.rs | 8 | ||||
| -rw-r--r-- | library/std/src/os/windows/io/handle.rs | 8 | ||||
| -rw-r--r-- | library/std/src/os/windows/io/socket.rs | 8 |
5 files changed, 33 insertions, 0 deletions
diff --git a/library/std/src/lib.rs b/library/std/src/lib.rs index 5b94f036248..3360f69d36a 100644 --- a/library/std/src/lib.rs +++ b/library/std/src/lib.rs @@ -378,6 +378,7 @@ #![feature(thin_box)] #![feature(try_reserve_kind)] #![feature(try_with_capacity)] +#![feature(unique_rc_arc)] #![feature(vec_into_raw_parts)] // tidy-alphabetical-end // diff --git a/library/std/src/os/fd/owned.rs b/library/std/src/os/fd/owned.rs index 2d087c03b04..ae34355e4ef 100644 --- a/library/std/src/os/fd/owned.rs +++ b/library/std/src/os/fd/owned.rs @@ -427,6 +427,14 @@ impl<T: AsFd + ?Sized> AsFd for crate::rc::Rc<T> { } } +#[unstable(feature = "unique_rc_arc", issue = "112566")] +impl<T: AsFd + ?Sized> AsFd for crate::rc::UniqueRc<T> { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + (**self).as_fd() + } +} + #[stable(feature = "asfd_ptrs", since = "1.64.0")] impl<T: AsFd + ?Sized> AsFd for Box<T> { #[inline] diff --git a/library/std/src/os/fd/raw.rs b/library/std/src/os/fd/raw.rs index 0d99d5492a2..22f5528248a 100644 --- a/library/std/src/os/fd/raw.rs +++ b/library/std/src/os/fd/raw.rs @@ -266,6 +266,14 @@ impl<T: AsRawFd> AsRawFd for crate::rc::Rc<T> { } } +#[unstable(feature = "unique_rc_arc", issue = "112566")] +impl<T: AsRawFd + ?Sized> AsRawFd for crate::rc::UniqueRc<T> { + #[inline] + fn as_raw_fd(&self) -> RawFd { + (**self).as_raw_fd() + } +} + #[stable(feature = "asrawfd_ptrs", since = "1.63.0")] impl<T: AsRawFd> AsRawFd for Box<T> { #[inline] diff --git a/library/std/src/os/windows/io/handle.rs b/library/std/src/os/windows/io/handle.rs index a4fa94e2b96..76f5f549dd2 100644 --- a/library/std/src/os/windows/io/handle.rs +++ b/library/std/src/os/windows/io/handle.rs @@ -485,6 +485,14 @@ impl<T: AsHandle + ?Sized> AsHandle for crate::rc::Rc<T> { } } +#[unstable(feature = "unique_rc_arc", issue = "112566")] +impl<T: AsHandle + ?Sized> AsHandle for crate::rc::UniqueRc<T> { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + (**self).as_handle() + } +} + #[stable(feature = "as_windows_ptrs", since = "1.71.0")] impl<T: AsHandle + ?Sized> AsHandle for Box<T> { #[inline] diff --git a/library/std/src/os/windows/io/socket.rs b/library/std/src/os/windows/io/socket.rs index 1fcfb6e73ad..8371376772d 100644 --- a/library/std/src/os/windows/io/socket.rs +++ b/library/std/src/os/windows/io/socket.rs @@ -279,6 +279,14 @@ impl<T: AsSocket> AsSocket for crate::rc::Rc<T> { } } +#[unstable(feature = "unique_rc_arc", issue = "112566")] +impl<T: AsSocket + ?Sized> AsSocket for crate::rc::UniqueRc<T> { + #[inline] + fn as_socket(&self) -> BorrowedSocket<'_> { + (**self).as_socket() + } +} + #[stable(feature = "as_windows_ptrs", since = "1.71.0")] impl<T: AsSocket> AsSocket for Box<T> { #[inline] |
