use daml_lf::element::DamlArchive;
#[derive(Debug, Default)]
pub struct RenderContext<'a> {
mode: RenderMode<'a>,
filter_mode: RenderFilterMode,
}
impl<'a> RenderContext<'a> {
pub const fn with_archive(archive: &'a DamlArchive<'a>, filter_mode: RenderFilterMode) -> Self {
Self {
mode: RenderMode::Full(archive),
filter_mode,
}
}
pub const fn archive(&self) -> &DamlArchive<'_> {
match &self.mode {
RenderMode::Intermediate(archive) => archive,
RenderMode::Full(archive) => archive,
}
}
pub const fn filter_mode(&self) -> RenderFilterMode {
self.filter_mode
}
}
#[derive(Debug)]
pub enum RenderMode<'a> {
Intermediate(DamlArchive<'a>),
Full(&'a DamlArchive<'a>),
}
impl Default for RenderMode<'_> {
fn default() -> Self {
RenderMode::Intermediate(DamlArchive::default())
}
}
#[derive(Debug, Clone, Copy)]
pub enum RenderFilterMode {
HigherKindedType,
NonSerializable,
}
impl Default for RenderFilterMode {
fn default() -> Self {
RenderFilterMode::HigherKindedType
}
}