use crate::utility::macros::macros::{get_function_result_number, get_function_result_pointer};
use crate::{DataStream, VboxError};
impl DataStream {
pub fn get_read_size(&self) -> Result<u32, VboxError> {
get_function_result_number!(self.object, GetReadSize, u32)
}
pub fn read(&self, size: u32, timeout_ms: u32) -> Result<&[u8], VboxError> {
let mut data_size: u32 = 0;
let data_ptr = get_function_result_pointer!(
self.object,
Read,
*mut u8,
size,
timeout_ms,
&mut data_size
)?;
let data_slice = unsafe { std::slice::from_raw_parts(data_ptr, size as usize) };
Ok(data_slice)
}
}