22 lines
568 B
Rust
22 lines
568 B
Rust
//! This module contains the global asembler context to be passed to functions that need
|
|
//! it.
|
|
|
|
use std::sync::RwLock;
|
|
|
|
use crate::{model::module_registry::ModuleRegistry, symtab::SymbolTable};
|
|
|
|
/// Global state to be passed around.
|
|
pub struct AssemblerContext {
|
|
pub symbol_table: RwLock<SymbolTable>,
|
|
pub module_registry: RwLock<ModuleRegistry>,
|
|
}
|
|
|
|
impl AssemblerContext {
|
|
pub fn new() -> Self {
|
|
Self {
|
|
symbol_table: RwLock::new(SymbolTable::new()),
|
|
module_registry: RwLock::new(ModuleRegistry::new()),
|
|
}
|
|
}
|
|
}
|