use crate::semantic::graphs::ReferenceIndex;
use crate::semantic::symbol_table::SymbolTable;
use crate::semantic::workspace::{ParsedFile, Workspace, WorkspaceFile};
use std::collections::HashMap;
use std::path::PathBuf;
impl<T: ParsedFile> Workspace<T> {
pub fn files(&self) -> &HashMap<PathBuf, WorkspaceFile<T>> {
&self.files
}
pub fn symbol_table(&self) -> &SymbolTable {
&self.symbol_table
}
pub fn symbol_table_mut(&mut self) -> &mut SymbolTable {
&mut self.symbol_table
}
pub fn reference_index(&self) -> &ReferenceIndex {
&self.reference_index
}
pub fn reference_index_mut(&mut self) -> &mut ReferenceIndex {
&mut self.reference_index
}
pub fn file_count(&self) -> usize {
self.files.len()
}
pub fn file_paths(&self) -> impl Iterator<Item = &PathBuf> {
self.files.keys()
}
}