use super::macros::intermediate; use crate::error::CustomError; #[derive(Debug, Clone)] pub(crate) struct ILatexFragment { pub(crate) value: String, } intermediate!( ILatexFragment, &'orig organic::types::LatexFragment<'parse>, original, _registry, { let value: String = if original.value.starts_with("$$") && original.value.ends_with("$$") { format!("\\[{}\\]", &original.value[2..(original.value.len() - 2)]) } else if original.value.starts_with("$") && original.value.ends_with("$") { format!("\\({}\\)", &original.value[1..(original.value.len() - 1)]) } else { original.value.to_owned() }; Ok(ILatexFragment { value }) } );