Struct artichoke_backend::state::State
source · [−]pub struct State {
pub parser: Option<State>,
pub classes: Registry,
pub modules: Registry,
pub load_path_vfs: Adapter,
pub regexp: State,
pub symbols: SymbolTable,
pub output: Strategy,
pub hash_builder: RandomState,
pub prng: Random,
}
Expand description
Container for interpreter global state.
A Ruby interpreter requires various pieces of state to execute Ruby code. It needs an object heap, type registry, symbol table, pseudorandom number generator, and more.
This struct stores all of these components and allows them to be passed
around as one bundle. This is useful in FFI contexts because this State
can be Box
ed and stored in a user data pointer.
Fields
parser: Option<State>
classes: Registry
modules: Registry
load_path_vfs: Adapter
regexp: State
symbols: SymbolTable
output: Strategy
hash_builder: RandomState
prng: Random
Implementations
sourceimpl State
impl State
sourcepub fn new() -> Result<Self, InterpreterAllocError>
pub fn new() -> Result<Self, InterpreterAllocError>
Create a new State
.
The state is comprised of several components:
Class
andModule
registries.Regexp
global state.- In-memory virtual file system.
- Ruby parser and file context.
- Intepreter-level PRNG (requires activating the
core-random
feature). - IO capturing strategy.
Errors
If the core-random
feature is enabled, this function may return an
error if the interpreter-global pseudorandom number generator fails
to initialize using the platform source of randomness.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for State
impl !Send for State
impl !Sync for State
impl Unpin for State
impl UnwindSafe for State
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more