ableos/ableos/src/ipc/socket.rs

41 lines
901 B
Rust

// SEEALSO: https://git.ablecorp.us/able/ableos/src/branch/master/ableos/src/relib/network/socket.rs
pub enum SocketError {
NonexistantSocket,
EmptySocket,
}
#[derive(Debug)]
pub struct Socket {
name: Option<String>,
stream: Vec<u8>,
}
impl Socket {
pub fn new() -> Self {
Self {
name: None,
stream: vec![],
}
}
pub fn write(&mut self, data: String) -> Result<(), SocketError> {
for c in data.chars() {
self.stream.push(c as u8);
}
Ok(())
}
pub fn read(&mut self) -> Result<Vec<u8>, SocketError> {
if self.stream.len() != 0 {
let skt = self.stream.clone();
self.stream = vec![];
return Ok(skt);
}
return Err(SocketError::EmptySocket);
}
pub fn name(&mut self, name: String) {
self.name = Some(name);
}
}