Struct ketos::scope::GlobalScope
[−]
[src]
pub struct GlobalScope { /* fields omitted */ }
Represents the global namespace of an execution context.
Methods
impl GlobalScope
[src]
fn new(
name: Name,
names: Rc<RefCell<NameStore>>,
codemap: Rc<RefCell<CodeMap>>,
registry: Rc<ModuleRegistry>,
io: Rc<GlobalIo>
) -> GlobalScope
name: Name,
names: Rc<RefCell<NameStore>>,
codemap: Rc<RefCell<CodeMap>>,
registry: Rc<ModuleRegistry>,
io: Rc<GlobalIo>
) -> GlobalScope
Creates a new global scope.
fn default(name: &str) -> GlobalScope
Creates a new global scope with the given name and default environment.
fn new_using(name: Name, scope: &Scope) -> Scope
Creates a new global scope using the shared data from the given scope.
fn clone_scope(&self) -> Scope
Creates a semi-"deep" clone of the GlobalScope
object.
All constants, macros, and values will be cloned into the new scope.
Other data will be shared between this scope and the new scope.
fn add_constant(&self, name: Name, value: Value)
Adds a named constant value to the scope.
fn add_doc_string(&self, name: Name, doc: String)
Adds a docstring for the named constant or value.
fn add_macro(&self, name: Name, lambda: Lambda)
Adds a macro function to the global scope.
fn add_name(&self, name: &str) -> Name
Adds a string representation to the contained NameStore
.
fn add_imports(&self, imports: ImportSet)
Adds a set of imports to the given scope.
fn add_value(&self, name: Name, value: Value)
Adds a value to the global scope.
fn add_named_value(&self, name: &str, value: Value)
Adds a value with the given name to the global scope.
fn add_value_with_name<F>(&self, name: &str, f: F) where
F: FnOnce(Name) -> Value,
F: FnOnce(Name) -> Value,
Adds a value to the global scope. The Name
value for the given
string representation is passed to the given closure to create the value.
fn borrow_codemap(&self) -> Ref<CodeMap>
Borrows a reference to the contained CodeMap
.
fn borrow_codemap_mut(&self) -> RefMut<CodeMap>
Borrows a mutable reference to the contained CodeMap
.
fn borrow_names(&self) -> Ref<NameStore>
Borrows a reference to the contained NameStore
.
fn borrow_names_mut(&self) -> RefMut<NameStore>
Borrows a mutable reference to the contained NameStore
.
fn num_constants(&self) -> usize
Returns the number of contained constants.
fn num_macros(&self) -> usize
Returns the number of contained macros.
fn num_values(&self) -> usize
Returns the number of contained values.
fn codemap(&self) -> &Rc<RefCell<CodeMap>>
Returns a borrowed reference to the contained CodeMap
.
fn get_constant(&self, name: Name) -> Option<Value>
Returns a named constant value, if present.
fn get_named_constant(&self, name: &str) -> Option<Value>
Returns a named constant value, if present.
fn io(&self) -> &Rc<GlobalIo>
Returns a borrowed reference to the contained GlobalIo
.
fn modules(&self) -> &Rc<ModuleRegistry>
Returns a borrowed reference to the contained ModuleRegistry
.
fn name(&self) -> Name
Returns the scope's name.
fn names(&self) -> &Rc<RefCell<NameStore>>
Returns a borrowed reference to the contained NameStore
.
fn contains_name(&self, name: Name) -> bool
Returns whether the scope contains a given exportable name.
fn contains_constant(&self, name: Name) -> bool
Returns whether the scope contains a constant for the given name.
fn contains_macro(&self, name: Name) -> bool
Returns whether the scope contains a macro for the given name.
fn contains_value(&self, name: Name) -> bool
Returns whether the scope contains a value for the given name.
fn get_macro(&self, name: Name) -> Option<Lambda>
Returns a macro function for the given name, if present.
fn get_named_macro(&self, name: &str) -> Option<Lambda>
Returns a macro function for the given name, if present.
fn get_named_value(&self, name: &str) -> Option<Value>
Returns a Value
for the given name, if present.
fn get_value(&self, name: Name) -> Option<Value>
Returns a Value
for the given name, if present.
fn import_all(&self, other: &GlobalScope) -> Vec<Name>
Clones all exported values from a scope into this scope.
fn is_exported(&self, name: Name) -> bool
Returns whether the given name has been exported in this scope.
fn is_imported(&self, name: Name) -> bool
Returns whether the given name is imported from another module.
fn set_exports(&self, names: NameSetSlice)
Assigns a set of exported names for this scope.
fn with_doc<F, R>(&self, name: Name, f: F) -> Option<R> where
F: FnOnce(&str) -> R,
F: FnOnce(&str) -> R,
Calls a closure with a borrowed reference to the named documentation, if present.
Note
When a function is declared with a docstring, that docstring is stored
in the compiled Code
object rather than the GlobalScope
.
fn with_docs<F, R>(&self, f: F) -> R where
F: FnOnce(&NameMap<String>) -> R,
F: FnOnce(&NameMap<String>) -> R,
Calls a closure with a borrowed reference to the contained docstrings.
fn with_docs_mut<F, R>(&self, f: F) -> R where
F: FnOnce(&mut NameMap<String>) -> R,
F: FnOnce(&mut NameMap<String>) -> R,
Calls a closure with a mutable reference to the contained docstrings.
fn with_module_doc<F, R>(&self, f: F) -> Option<R> where
F: FnOnce(&str) -> R,
F: FnOnce(&str) -> R,
Calls a closure with an optional reference to the module docstring.
fn with_module_doc_mut<F, R>(&self, f: F) -> R where
F: FnOnce(&mut Option<String>) -> R,
F: FnOnce(&mut Option<String>) -> R,
Calls a closure with a mutable reference to the module docstring.
fn with_name<F, R>(&self, name: Name, f: F) -> R where
F: FnOnce(&str) -> R,
F: FnOnce(&str) -> R,
Calls a closure with the borrowed string representation of a name.
fn with_exports<F, R>(&self, f: F) -> Option<R> where
F: FnOnce(&NameSetSlice) -> R,
F: FnOnce(&NameSetSlice) -> R,
Calls a closure with the set of exported names.
fn with_imports<F, R>(&self, f: F) -> R where
F: FnOnce(&[ImportSet]) -> R,
F: FnOnce(&[ImportSet]) -> R,
Calls a closure with the set of imported values.
fn with_constants<F, R>(&self, f: F) -> R where
F: FnOnce(&NameMap<Value>) -> R,
F: FnOnce(&NameMap<Value>) -> R,
Calls a closure with the set of defined constants.
fn with_macros<F, R>(&self, f: F) -> R where
F: FnOnce(&NameMap<Lambda>) -> R,
F: FnOnce(&NameMap<Lambda>) -> R,
Calls a closure with the set of defined macros.
fn with_values<F, R>(&self, f: F) -> R where
F: FnOnce(&NameMap<Value>) -> R,
F: FnOnce(&NameMap<Value>) -> R,
Calls a closure with the set of defined values.