pub struct State {
pub parser: Option<State>,
pub classes: Registry<Spec>,
pub modules: Registry<Spec>,
pub load_path_vfs: Adapter,
pub regexp: State,
pub symbols: SymbolTable<BuildHasherDefault<FxHasher>>,
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<Spec>
§modules: Registry<Spec>
§load_path_vfs: Adapter
§regexp: State
§symbols: SymbolTable<BuildHasherDefault<FxHasher>>
§output: Strategy
§hash_builder: RandomState
§prng: Random
Implementations§
Source§impl 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.
- 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 Freeze for State
impl RefUnwindSafe for State
impl !Send for State
impl !Sync for State
impl Unpin for State
impl UnwindSafe for State
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