pub struct VmLibrary {
pub source: Library,
pub modules: Modules,
/* private fields */
}Expand description
Where CALL finds a program on the VM (load-module.md §8.2): among the programs already read,
those of the run’s first source or module first; then NAME.iwm in the program libraries; then
source there, lowered as CALL loads it.
Fields§
§source: Library§modules: ModulesImplementations§
Source§impl VmLibrary
impl VmLibrary
Sourcepub fn new(source: Library) -> Self
pub fn new(source: Library) -> Self
The library’s directories are where NAME.iwm is looked for, in their order.
Sourcepub fn for_module(source: Library, path: &Path, module: LoadedModule) -> Self
pub fn for_module(source: Library, path: &Path, module: LoadedModule) -> Self
A library for a run that begins with module, read from path, whose programs come before
any other’s.
Trait Implementations§
Source§impl Loader<Rc<Code>> for VmLibrary
impl Loader<Rc<Code>> for VmLibrary
Source§fn mapset(&mut self, name: &str) -> Option<Result<Mapset, String>>
fn mapset(&mut self, name: &str) -> Option<Result<Mapset, String>>
A mapset a module already read holds, else one from the copy libraries.
Source§fn program(&mut self, name: &str) -> Result<LoadedProgram<Rc<Code>>, LoadError>
fn program(&mut self, name: &str) -> Result<LoadedProgram<Rc<Code>>, LoadError>
The program whose PROGRAM-ID CALL names, compiled.
Source§fn holder(&self, entry: &str) -> Option<String>
fn holder(&self, entry: &str) -> Option<String>
The PROGRAM-ID of a program not yet loaded that has an ENTRY of this name.
Source§fn entry(program: &Rc<Code>, name: &str) -> Option<usize>
fn entry(program: &Rc<Code>, name: &str) -> Option<usize>
Which of a loaded program’s ENTRY statements has this name.
Source§fn shape(program: &Rc<Code>) -> (usize, usize)
fn shape(program: &Rc<Code>) -> (usize, usize)
A loaded program’s file count and storage size.
Source§fn nested(program: &Rc<Code>) -> &[String]
fn nested(program: &Rc<Code>) -> &[String]
The PROGRAM-IDs of the programs a loaded program contains, which a CANCEL of it reaches.
Auto Trait Implementations§
impl Freeze for VmLibrary
impl RefUnwindSafe for VmLibrary
impl Send for VmLibrary
impl Sync for VmLibrary
impl Unpin for VmLibrary
impl UnsafeUnpin for VmLibrary
impl UnwindSafe for VmLibrary
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