Trait optee_utee::net::StdCompatWrite

source ·
pub trait StdCompatWrite {
    // Required method
    fn write(&mut self, buf: &[u8]) -> Result<usize, SocketError>;

    // Provided method
    fn write_all(&mut self, buf: &[u8]) -> Result<(), SocketError> { ... }
}
Expand description

A trait used for convenience; import it so that the code remains consistent with the std version (with the only difference being the return error type).

Take TcpStream as example:

use optee_utee::net::{TcpStream, SocketError};

fn write_without_compact_trait(stream: &mut TcpStream, mut buf: &[u8]) -> Result<(), SocketError> {
    use optee_utee::ErrorKind;
     
    while !buf.is_empty() {
        match stream.send(buf) {
            Ok(0) => return Err(SocketError::Tee(ErrorKind::Generic)),
            Ok(n) => buf = &buf[n..],
            Err(e) => return Err(e),
        }
    }
    Ok(())
}

fn write_with_compact_trait(stream: &mut TcpStream, buf: &[u8]) -> Result<(), SocketError> {
    use optee_utee::net::StdCompatWrite;

    stream.write_all(buf)
}

Required Methods§

source

fn write(&mut self, buf: &[u8]) -> Result<usize, SocketError>

Provided Methods§

source

fn write_all(&mut self, buf: &[u8]) -> Result<(), SocketError>

Implementors§