code-moniker-workspace 0.4.0

Workspace model, ports, snapshots, linkage, and change analysis for code-moniker.
Documentation
mod changes;
mod linkage;
mod model;
mod references;
mod search;
mod sources;
mod symbols;

use super::model::WorkspaceSnapshot;

pub use changes::ChangeView;
pub use linkage::LinkageView;
pub use model::{
	ChangeDetail, ChangeSummary, ReferenceDirection, ReferenceSet, ReferenceSetSummary,
	ReferenceSummary, SearchHit, SourceSummary, SymbolDetail, SymbolReferences, SymbolSummary,
	UnresolvedLinkageReport,
};
pub use references::ReferenceView;
pub use search::SearchView;
pub use sources::SourceView;
pub use symbols::SymbolView;

pub struct WorkspaceView<'a> {
	snapshot: &'a WorkspaceSnapshot,
}

impl<'a> WorkspaceView<'a> {
	pub fn new(snapshot: &'a WorkspaceSnapshot) -> Self {
		Self { snapshot }
	}

	pub fn sources(&self) -> SourceView<'a> {
		SourceView::new(self.snapshot)
	}

	pub fn symbols(&self) -> SymbolView<'a> {
		SymbolView::new(self.snapshot)
	}

	pub fn references(&self) -> ReferenceView<'a> {
		ReferenceView::new(self.snapshot)
	}

	pub fn search(&self) -> SearchView<'a> {
		SearchView::new(self.snapshot)
	}

	pub fn changes(&self) -> ChangeView<'a> {
		ChangeView::new(self.snapshot)
	}

	pub fn linkage(&self) -> LinkageView<'a> {
		LinkageView::new(self.snapshot)
	}
}