Struct brainfoamkit_lib::VirtualMachineBuilder
source · pub struct VirtualMachineBuilder { /* private fields */ }
Expand description
VirtualMachineBuilder
is a builder for the VirtualMachine
struct.
This builder allows you to set the program
and tape_size
for a
VirtualMachine
before building it. Both program
and tape_size
are
optional. If they’re not provided, the VirtualMachine
will be initialized
with default values.
Examples
use brainfoamkit_lib::{
Program,
VirtualMachineBuilder,
};
let program = Program::default();
let vm = VirtualMachineBuilder::default()
.program(program)
.tape_size(1024)
.build();
Implementations§
source§impl VirtualMachineBuilder
impl VirtualMachineBuilder
sourcepub const fn new() -> Self
pub const fn new() -> Self
Creates a new VirtualMachineBuilder
with default values.
This function returns a new VirtualMachineBuilder
with program
and
tape_size
set to None
. These values can be set later using the
builder’s methods.
Returns
A new VirtualMachineBuilder
with default values.
Examples
use brainfoamkit_lib::VirtualMachineBuilder;
let builder = VirtualMachineBuilder::new();
sourcepub fn program(self, program: Program) -> Self
pub fn program(self, program: Program) -> Self
Set the program to be run by the virtual machine.
Arguments
program
- The program to be run by the virtual machine.
Returns
- Builder by value with the program set.
Examples
use brainfoamkit_lib::{
Program,
VirtualMachineBuilder,
};
let program = Program::from_string("++++++[>++++++++++<-]>+++++.");
let vm = VirtualMachineBuilder::new().program(program).build();
assert_eq!(
vm.program(),
Program::from_string("++++++[>++++++++++<-]>+++++.")
);
sourcepub const fn tape_size(self, tape_size: usize) -> Self
pub const fn tape_size(self, tape_size: usize) -> Self
Set the size of the tape to be used by the virtual machine. The default size is 30,000.
Arguments
tape_size
- The size of the tape to be used by the virtual machine.
Returns
- Builder by value with the tape size set.
Examples
use brainfoamkit_lib::VirtualMachineBuilder;
let vm = VirtualMachineBuilder::new().tape_size(100).build();
assert_eq!(vm.length(), 100);
sourcepub fn build(self) -> VirtualMachine
pub fn build(self) -> VirtualMachine
Trait Implementations§
source§impl Default for VirtualMachineBuilder
impl Default for VirtualMachineBuilder
source§fn default() -> VirtualMachineBuilder
fn default() -> VirtualMachineBuilder
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl RefUnwindSafe for VirtualMachineBuilder
impl Send for VirtualMachineBuilder
impl Sync for VirtualMachineBuilder
impl Unpin for VirtualMachineBuilder
impl UnwindSafe for VirtualMachineBuilder
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