Struct termios::Termios[][src]

pub struct Termios { /* fields omitted */ }
Expand description

Unix terminal I/O control structure.

The Termios structure is a thin wrapper for the OS-specific termios struct. The only safe way to obtain a Termios structure is to fill one from a file descriptor with Termios::from_fd(), after which it can be treated just like the POSIX termios struct. It provides access to the standard fields of the termios struct (c_iflag, c_oflag, c_cflag, c_lflag, and c_cc) through the Deref and DerefMut traits.

Example

The following is an example of how one might setup a file descriptor for a serial port:

use std::io;
use std::os::unix::io::RawFd;

fn setup_serial(fd: RawFd) -> io::Result<()> {
    use termios::*;

    let mut termios = try!(Termios::from_fd(fd));

    termios.c_cflag |= CREAD | CLOCAL;
    termios.c_lflag &= !(ICANON | ECHO | ECHOE | ECHOK | ECHONL | ISIG | IEXTEN);
    termios.c_oflag &= !OPOST;
    termios.c_iflag &= !(INLCR | IGNCR | ICRNL | IGNBRK);

    termios.c_cc[VMIN] = 0;
    termios.c_cc[VTIME] = 0;

    try!(cfsetspeed(&mut termios, B9600));
    try!(tcsetattr(fd, TCSANOW, &mut termios));

    Ok(())
}

Implementations

impl Termios[src]

pub fn from_fd(fd: RawFd) -> Result<Self>[src]

Creates a Termios structure based on the current settings of a file descriptor.

fd must be an open file descriptor for a terminal device.

Trait Implementations

impl Clone for Termios[src]

fn clone(&self) -> Termios[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for Termios[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl Deref for Termios[src]

type Target = termios

The resulting type after dereferencing.

fn deref(&self) -> &termios[src]

Dereferences the value.

impl DerefMut for Termios[src]

fn deref_mut(&mut self) -> &mut termios[src]

Mutably dereferences the value.

impl PartialEq<Termios> for Termios[src]

fn eq(&self, other: &Termios) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

fn ne(&self, other: &Termios) -> bool[src]

This method tests for !=.

impl Copy for Termios[src]

impl Eq for Termios[src]

impl StructuralEq for Termios[src]

impl StructuralPartialEq for Termios[src]

Auto Trait Implementations

impl RefUnwindSafe for Termios

impl Send for Termios

impl Sync for Termios

impl Unpin for Termios

impl UnwindSafe for Termios

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.