use super::initializer::InitializerName;
use super::library::LeanLibrary;
pub struct LeanModule<'lean, 'lib> {
library: &'lib LeanLibrary<'lean>,
initializer: InitializerName,
}
impl<'lean, 'lib> LeanModule<'lean, 'lib> {
pub(super) fn new(library: &'lib LeanLibrary<'lean>, initializer: InitializerName) -> Self {
Self { library, initializer }
}
#[must_use]
pub fn module_name(&self) -> &str {
self.initializer.display()
}
pub(crate) fn library(&self) -> &'lib LeanLibrary<'lean> {
self.library
}
#[allow(dead_code, reason = "reserved for symbol-derivation helpers in later prompts")]
pub(crate) fn initializer(&self) -> &InitializerName {
&self.initializer
}
}
impl std::fmt::Debug for LeanModule<'_, '_> {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("LeanModule")
.field("module", &self.initializer.display())
.finish()
}
}