litchi 0.0.1

High-performance parser for Microsoft Office, OpenDocument, and Apple iWork file formats with unified API
Documentation
// Radical element handler

use crate::formula::ast::*;
use crate::formula::omml::elements::ElementContext;

/// Handler for radical (root) elements
pub struct RadicalHandler;

impl RadicalHandler {
    pub fn handle_end<'arena>(
        context: &mut ElementContext<'arena>,
        parent_context: Option<&mut ElementContext<'arena>>,
        _arena: &'arena bumpalo::Bump,
    ) {
        let base = context.base.take()
            .unwrap_or_default();
        let index = context.degree.take();

        let node = MathNode::Root { base, index };

        if let Some(parent) = parent_context {
            parent.children.push(node);
        }
    }
}