pub struct MockReader {
    pub data: Cursor<Vec<u8>>,
}
Expand description

The MockReader struct

This struct is used to implement a mock Reader for the VirtualMachine. This allows for us to test the VirtualMachine without having to use Stdin or File as the Reader.

This struct is used for testing purposes only, and should not be used in production code.

Examples

use brainfoamkit_lib::VMReader;

let mut mock = brainfoamkit_lib::MockReader {
    data: std::io::Cursor::new("A".as_bytes().to_vec()),
};

assert_eq!(mock.read().unwrap(), 65);

See Also

Fields§

§data: Cursor<Vec<u8>>

Trait Implementations§

source§

impl Debug for MockReader

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for MockReader

source§

fn default() -> MockReader

Returns the “default value” for a type. Read more
source§

impl VMReader for MockReader

The implementation of the VMReader trait for the MockReader struct

source§

fn read(&mut self) -> Result<u8>

Read a single byte from the mock reader

This function reads a single byte from the mock reader and returns it as a u8 for use by the VirtualMachine. The mock reader is implemented using a Cursor<Vec<u8>>, which is used to store the data that is read from the mock reader.

Errors

This function will return an error if the byte read from the mock reader is not within the ASCII range.

Examples
use brainfoamkit_lib::VMReader;

let mut mock = brainfoamkit_lib::MockReader {
    data: std::io::Cursor::new("A".as_bytes().to_vec()),
};

assert_eq!(mock.read().unwrap(), 65);
assert_eq!(
    mock.get_vmreader_type(),
    brainfoamkit_lib::VMReaderType::Mock
);
source§

fn get_vmreader_type(&self) -> VMReaderType

Get the type of the reader Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.