rust_minecraft_server/src/d.rs
2025-05-01 05:54:57 +03:00

37 lines
694 B
Rust

use std::ops::Index;
pub enum BufferError {
EndOfBuffer
}
pub struct Buffer {
bytes: Vec<u8>,
index: usize
}
impl Buffer {
pub fn new(bytes: Vec<u8>, index: usize) -> Self {
Buffer { bytes, index }
}
pub fn read(&self, size: usize) -> Result<Vec<u8>, BufferError> {
if self.index + size >= self.bytes.len() {return Err(BufferError::EndOfBuffer);}
// self.index += size;
Ok(self.bytes[self.index..self.index+size-1].to_vec())
}
pub fn read2(&mut self, size: usize) -> Result<Vec<u8>, BufferError> {
if self.index + size >= self.bytes.len() {return Err(BufferError::EndOfBuffer);}
self.index += size;
Ok(self.bytes[self.index..self.index+size-1].to_vec())
}
}