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)
}