mdf4_rs/blocks/conversion/
formula.rs

1use crate::Result;
2use crate::blocks::common::read_string_block;
3use crate::blocks::conversion::base::ConversionBlock;
4use crate::blocks::conversion::types::ConversionType;
5
6impl ConversionBlock {
7    /// Resolve and store the algebraic formula referenced by this block.
8    ///
9    /// # Arguments
10    /// * `file_data` - Memory mapped MDF bytes used to read the formula text.
11    ///
12    /// # Returns
13    /// `Ok(())` on success or an [`crate::Error`] if the formula block cannot be
14    /// read.
15    pub fn resolve_formula(&mut self, file_data: &[u8]) -> Result<()> {
16        if self.conversion_type != ConversionType::Algebraic || self.refs.is_empty() {
17            return Ok(());
18        }
19
20        let addr = self.refs[0];
21        if let Some(formula) = read_string_block(file_data, addr)? {
22            self.formula = Some(formula);
23        }
24
25        Ok(())
26    }
27}