forked from AbleOS/ableos
41 lines
901 B
Rust
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);
|
|
}
|
|
}
|