pub struct DataStream { /* private fields */ }
Expand description
The IDataStream interface is used to retrieve a data stream.
Reference to the official documentation:
https://www.virtualbox.org/sdkref/interface_i_data_stream.html
Implementations§
Source§impl DataStream
impl DataStream
Sourcepub fn get_read_size(&self) -> Result<u32, VboxError>
pub fn get_read_size(&self) -> Result<u32, VboxError>
Recommended size of a read.
Requesting a larger read may be possible in certain situations, but it is not guaranteed.
§Returns
Returns u32, or a VboxError
on failure.
§Example
use virtualbox_rs::enums::PartitionTableType;
use virtualbox_rs::VirtualBox;
let vbox = VirtualBox::init().unwrap();
let mediums = vbox.get_floppy_images().unwrap();
let medium = mediums.get(0).unwrap();
let medium_io = medium.open_for_io(true, "").unwrap();
let (stream, progress) = medium_io.convert_to_stream("VDI", vec![], 1024).unwrap();
progress.wait_for_completion(-1).unwrap();
let read_size = stream.get_read_size().unwrap();
Sourcepub fn read(&self, size: u32, timeout_ms: u32) -> Result<&[u8], VboxError>
pub fn read(&self, size: u32, timeout_ms: u32) -> Result<&[u8], VboxError>
Read data from the stream.
§Arguments
size
- How many bytes to try read.timeout_ms
- Timeout (in ms) for limiting the wait time for data to be available. Pass 0 for an infinite timeout.
§Returns
Returns [&[u8]
], or a VboxError
on failure.
-Array of data read. This may be shorter than the specified size. Returning a zero-sized array indicates the end of the stream, if the status is successful.
§Example
use virtualbox_rs::enums::PartitionTableType;
use virtualbox_rs::VirtualBox;
let vbox = VirtualBox::init().unwrap();
let mediums = vbox.get_floppy_images().unwrap();
let medium = mediums.get(0).unwrap();
let medium_io = medium.open_for_io(true, "").unwrap();
let (stream, progress) = medium_io.convert_to_stream("VDI", vec![], 1024).unwrap();
progress.wait_for_completion(-1).unwrap();
let read_size = stream.get_read_size().unwrap();
let data = stream.read(read_size, 1000).unwrap();
Trait Implementations§
Source§impl Debug for DataStream
impl Debug for DataStream
Auto Trait Implementations§
impl Freeze for DataStream
impl RefUnwindSafe for DataStream
impl !Send for DataStream
impl !Sync for DataStream
impl Unpin for DataStream
impl UnwindSafe for DataStream
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more