Struct char_device::CharDevice
source · pub struct CharDevice(/* private fields */);
Expand description
An unbuffered character device.
This is a wrapper around std::fs::File
which is intended for use with
character device “files” such as “/dev/tty”.
Implementations§
source§impl CharDevice
impl CharDevice
sourcepub fn new<Filelike: IntoFilelike + Read + Write>(
filelike: Filelike
) -> Result<Self>
pub fn new<Filelike: IntoFilelike + Read + Write>( filelike: Filelike ) -> Result<Self>
Construct a new CharDevice
. Fail if the given handle isn’t a valid
handle for a character device, or it can’t be determined.
sourcepub fn open<P: AsRef<Path>>(path: P) -> Result<Self>
pub fn open<P: AsRef<Path>>(path: P) -> Result<Self>
Construct a new CharDevice
from the given filename. Fail if the given
handle isn’t a valid handle for a character device, or it can’t be
determined.
sourcepub unsafe fn new_unchecked<Filelike: IntoFilelike>(filelike: Filelike) -> Self
pub unsafe fn new_unchecked<Filelike: IntoFilelike>(filelike: Filelike) -> Self
sourcepub fn null() -> Result<Self>
pub fn null() -> Result<Self>
Construct a new CharDevice
which discards writes and reads nothing.
This is “/dev/null” on Posix-ish platforms and “nul” on Windows.
sourcepub fn try_clone(&self) -> Result<Self>
pub fn try_clone(&self) -> Result<Self>
Creates a new independently owned handle to the underlying device.
sourcepub fn num_ready_bytes(&self) -> Result<u64>
pub fn num_ready_bytes(&self) -> Result<u64>
Return the number of bytes which are ready to be read immediately.
Trait Implementations§
source§impl AsHandle for CharDevice
impl AsHandle for CharDevice
source§fn as_handle(&self) -> BorrowedHandle<'_>
fn as_handle(&self) -> BorrowedHandle<'_>
Borrows the handle. Read more
source§impl AsHandleOrSocket for CharDevice
impl AsHandleOrSocket for CharDevice
source§fn as_handle_or_socket(&self) -> BorrowedHandleOrSocket<'_>
fn as_handle_or_socket(&self) -> BorrowedHandleOrSocket<'_>
Like
AsHandle::as_handle
and AsSocket::as_socket
but can return either type.source§impl AsRawHandle for CharDevice
impl AsRawHandle for CharDevice
source§fn as_raw_handle(&self) -> RawHandle
fn as_raw_handle(&self) -> RawHandle
Extracts the raw handle. Read more
source§impl AsRawHandleOrSocket for CharDevice
impl AsRawHandleOrSocket for CharDevice
source§fn as_raw_handle_or_socket(&self) -> RawHandleOrSocket
fn as_raw_handle_or_socket(&self) -> RawHandleOrSocket
Like
AsRawHandle::as_raw_handle
and AsRawSocket::as_raw_socket
but can return either type.source§impl AsRawReadWriteHandleOrSocket for CharDevice
impl AsRawReadWriteHandleOrSocket for CharDevice
source§fn as_raw_read_handle_or_socket(&self) -> RawHandleOrSocket
fn as_raw_read_handle_or_socket(&self) -> RawHandleOrSocket
Extracts the raw handle or socket for reading. Read more
source§fn as_raw_write_handle_or_socket(&self) -> RawHandleOrSocket
fn as_raw_write_handle_or_socket(&self) -> RawHandleOrSocket
Extracts the raw handle or socket for writing. Read more
source§impl AsReadWriteHandleOrSocket for CharDevice
impl AsReadWriteHandleOrSocket for CharDevice
source§fn as_read_handle_or_socket(&self) -> BorrowedHandleOrSocket<'_>
fn as_read_handle_or_socket(&self) -> BorrowedHandleOrSocket<'_>
Extracts the handle or socket for reading. Read more
source§fn as_write_handle_or_socket(&self) -> BorrowedHandleOrSocket<'_>
fn as_write_handle_or_socket(&self) -> BorrowedHandleOrSocket<'_>
Extracts the handle or socket for writing. Read more
source§impl Debug for CharDevice
impl Debug for CharDevice
source§impl From<CharDevice> for OwnedHandle
impl From<CharDevice> for OwnedHandle
source§fn from(char_device: CharDevice) -> OwnedHandle
fn from(char_device: CharDevice) -> OwnedHandle
Converts to this type from the input type.
source§impl From<CharDevice> for OwnedHandleOrSocket
impl From<CharDevice> for OwnedHandleOrSocket
source§fn from(char_device: CharDevice) -> Self
fn from(char_device: CharDevice) -> Self
Converts to this type from the input type.
source§impl IntoRawHandle for CharDevice
impl IntoRawHandle for CharDevice
source§fn into_raw_handle(self) -> RawHandle
fn into_raw_handle(self) -> RawHandle
Consumes this object, returning the raw underlying handle. Read more
source§impl IntoRawHandleOrSocket for CharDevice
impl IntoRawHandleOrSocket for CharDevice
source§fn into_raw_handle_or_socket(self) -> RawHandleOrSocket
fn into_raw_handle_or_socket(self) -> RawHandleOrSocket
Like
IntoRawHandle::into_raw_handle
and
IntoRawSocket::into_raw_socket
but can return either type.source§impl Read for CharDevice
impl Read for CharDevice
source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Pull some bytes from this source into the specified buffer, returning
how many bytes were read. Read more
source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
Like
read
, except that it reads into a slice of buffers. Read moresource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)source§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
Read all bytes until EOF in this source, placing them into
buf
. Read moresource§fn read_to_string(&mut self, buf: &mut String) -> Result<usize>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize>
Read all bytes until EOF in this source, appending them to
buf
. Read moresource§fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
Read the exact number of bytes required to fill
buf
. Read moresource§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Pull some bytes from this source into the specified buffer. Read more
source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Read the exact number of bytes required to fill
cursor
. Read more1.0.0 · source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Creates a “by reference” adaptor for this instance of
Read
. Read moresource§impl Write for CharDevice
impl Write for CharDevice
source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Write a buffer into this writer, returning how many bytes were written. Read more
source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flush this output stream, ensuring that all intermediately buffered
contents reach their destination. Read more
source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)source§fn write_all(&mut self, buf: &[u8]) -> Result<()>
fn write_all(&mut self, buf: &[u8]) -> Result<()>
Attempts to write an entire buffer into this writer. Read more
source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
🔬This is a nightly-only experimental API. (
write_all_vectored
)Attempts to write multiple buffers into this writer. Read more
Auto Trait Implementations§
impl Freeze for CharDevice
impl RefUnwindSafe for CharDevice
impl Send for CharDevice
impl Sync for CharDevice
impl Unpin for CharDevice
impl UnwindSafe for CharDevice
Blanket Implementations§
source§impl<T> AsFilelike for Twhere
T: AsHandle,
impl<T> AsFilelike for Twhere
T: AsHandle,
source§fn as_filelike(&self) -> BorrowedHandle<'_>
fn as_filelike(&self) -> BorrowedHandle<'_>
Borrows the reference. Read more
source§fn as_filelike_view<Target>(&self) -> FilelikeView<'_, Target>where
Target: FilelikeViewType,
fn as_filelike_view<Target>(&self) -> FilelikeView<'_, Target>where
Target: FilelikeViewType,
Return a borrowing view of a resource which dereferences to a
&Target
. Read moresource§impl<T> AsGrip for Twhere
T: AsHandleOrSocket,
impl<T> AsGrip for Twhere
T: AsHandleOrSocket,
source§fn as_grip(&self) -> BorrowedHandleOrSocket<'_>
fn as_grip(&self) -> BorrowedHandleOrSocket<'_>
Extracts the grip.
source§impl<T> AsRawFilelike for Twhere
T: AsRawHandle,
impl<T> AsRawFilelike for Twhere
T: AsRawHandle,
source§fn as_raw_filelike(&self) -> *mut c_void
fn as_raw_filelike(&self) -> *mut c_void
Returns the raw value.
source§impl<T> AsRawGrip for Twhere
T: AsRawHandleOrSocket,
impl<T> AsRawGrip for Twhere
T: AsRawHandleOrSocket,
source§fn as_raw_grip(&self) -> RawHandleOrSocket
fn as_raw_grip(&self) -> RawHandleOrSocket
Extracts the raw grip.
source§impl<T> AsRawReadWriteGrip for Twhere
T: AsRawReadWriteHandleOrSocket,
impl<T> AsRawReadWriteGrip for Twhere
T: AsRawReadWriteHandleOrSocket,
source§fn as_raw_read_grip(&self) -> RawHandleOrSocket
fn as_raw_read_grip(&self) -> RawHandleOrSocket
Extracts the grip for reading. Read more
source§fn as_raw_write_grip(&self) -> RawHandleOrSocket
fn as_raw_write_grip(&self) -> RawHandleOrSocket
Extracts the grip for writing. Read more
source§impl<T> AsReadWriteGrip for Twhere
T: AsReadWriteHandleOrSocket,
impl<T> AsReadWriteGrip for Twhere
T: AsReadWriteHandleOrSocket,
source§fn as_read_grip(&self) -> BorrowedHandleOrSocket<'_>
fn as_read_grip(&self) -> BorrowedHandleOrSocket<'_>
Extracts the grip for reading. Read more
source§fn as_write_grip(&self) -> BorrowedHandleOrSocket<'_>
fn as_write_grip(&self) -> BorrowedHandleOrSocket<'_>
Extracts the grip for writing. Read more
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> IntoFilelike for Twhere
T: Into<OwnedHandle>,
impl<T> IntoFilelike for Twhere
T: Into<OwnedHandle>,
source§fn into_filelike(self) -> OwnedHandle
fn into_filelike(self) -> OwnedHandle
Consumes this object, returning the underlying filelike object.
source§impl<T> IntoGrip for Twhere
T: Into<OwnedHandleOrSocket>,
impl<T> IntoGrip for Twhere
T: Into<OwnedHandleOrSocket>,
source§fn into_grip(self) -> OwnedHandleOrSocket
fn into_grip(self) -> OwnedHandleOrSocket
Consume
self
and convert into an OwnedGrip
.source§impl<T> IntoHandle for Twhere
OwnedHandle: From<T>,
impl<T> IntoHandle for Twhere
OwnedHandle: From<T>,
source§fn into_handle(self) -> OwnedHandle
fn into_handle(self) -> OwnedHandle
👎Deprecated since 1.0.0:
IntoHandle
is replaced by From<...> for OwnedHandle
or Into<OwnedHandle>
Consumes this object, returning the underlying handle. Read more
source§impl<T> IntoRawFilelike for Twhere
T: IntoRawHandle,
impl<T> IntoRawFilelike for Twhere
T: IntoRawHandle,
source§fn into_raw_filelike(self) -> *mut c_void
fn into_raw_filelike(self) -> *mut c_void
Returns the raw value.
source§impl<T> IntoRawGrip for Twhere
T: IntoRawHandleOrSocket,
impl<T> IntoRawGrip for Twhere
T: IntoRawHandleOrSocket,
source§fn into_raw_grip(self) -> RawHandleOrSocket
fn into_raw_grip(self) -> RawHandleOrSocket
Consume
self
and convert into an RawGrip
.