Loading libs/binder/rust/src/parcel/file_descriptor.rs +10 −11 Original line number Diff line number Diff line Loading @@ -22,29 +22,28 @@ use crate::binder::AsNative; use crate::error::{status_result, Result, StatusCode}; use crate::sys; use std::fs::File; use std::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd, RawFd}; use std::os::fd::{AsRawFd, FromRawFd, IntoRawFd, OwnedFd, RawFd}; /// Rust version of the Java class android.os.ParcelFileDescriptor #[derive(Debug)] pub struct ParcelFileDescriptor(File); pub struct ParcelFileDescriptor(OwnedFd); impl ParcelFileDescriptor { /// Create a new `ParcelFileDescriptor` pub fn new(file: File) -> Self { Self(file) pub fn new<F: Into<OwnedFd>>(fd: F) -> Self { Self(fd.into()) } } impl AsRef<File> for ParcelFileDescriptor { fn as_ref(&self) -> &File { impl AsRef<OwnedFd> for ParcelFileDescriptor { fn as_ref(&self) -> &OwnedFd { &self.0 } } impl From<ParcelFileDescriptor> for File { fn from(file: ParcelFileDescriptor) -> File { file.0 impl From<ParcelFileDescriptor> for OwnedFd { fn from(fd: ParcelFileDescriptor) -> OwnedFd { fd.0 } } Loading Loading @@ -120,7 +119,7 @@ impl DeserializeOption for ParcelFileDescriptor { // Safety: At this point, we know that the file descriptor was // not -1, so must be a valid, owned file descriptor which we // can safely turn into a `File`. let file = unsafe { File::from_raw_fd(fd) }; let file = unsafe { OwnedFd::from_raw_fd(fd) }; Ok(Some(ParcelFileDescriptor::new(file))) } } Loading Loading
libs/binder/rust/src/parcel/file_descriptor.rs +10 −11 Original line number Diff line number Diff line Loading @@ -22,29 +22,28 @@ use crate::binder::AsNative; use crate::error::{status_result, Result, StatusCode}; use crate::sys; use std::fs::File; use std::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd, RawFd}; use std::os::fd::{AsRawFd, FromRawFd, IntoRawFd, OwnedFd, RawFd}; /// Rust version of the Java class android.os.ParcelFileDescriptor #[derive(Debug)] pub struct ParcelFileDescriptor(File); pub struct ParcelFileDescriptor(OwnedFd); impl ParcelFileDescriptor { /// Create a new `ParcelFileDescriptor` pub fn new(file: File) -> Self { Self(file) pub fn new<F: Into<OwnedFd>>(fd: F) -> Self { Self(fd.into()) } } impl AsRef<File> for ParcelFileDescriptor { fn as_ref(&self) -> &File { impl AsRef<OwnedFd> for ParcelFileDescriptor { fn as_ref(&self) -> &OwnedFd { &self.0 } } impl From<ParcelFileDescriptor> for File { fn from(file: ParcelFileDescriptor) -> File { file.0 impl From<ParcelFileDescriptor> for OwnedFd { fn from(fd: ParcelFileDescriptor) -> OwnedFd { fd.0 } } Loading Loading @@ -120,7 +119,7 @@ impl DeserializeOption for ParcelFileDescriptor { // Safety: At this point, we know that the file descriptor was // not -1, so must be a valid, owned file descriptor which we // can safely turn into a `File`. let file = unsafe { File::from_raw_fd(fd) }; let file = unsafe { OwnedFd::from_raw_fd(fd) }; Ok(Some(ParcelFileDescriptor::new(file))) } } Loading