rs-chunks 0.6.1

Fast, high-fidelity document chunking for RAG — a pure-Rust engine covering 36 file formats (Office, OpenDocument, PDF, email, ebooks, notebooks, and more).
//! Namespace-agnostic XML name/attribute helpers.

use quick_xml::events::attributes::Attributes;
use quick_xml::name::QName;

// ── XML helpers ───────────────────────────────────────────────────────────────

pub fn local_name(name: QName<'_>) -> Vec<u8> {
    let raw = name.as_ref();
    raw.rsplit(|b| *b == b':').next().unwrap_or(raw).to_vec()
}

pub fn attr_value(attrs: Attributes<'_>, key: &[u8]) -> Option<String> {
    for attr in attrs.flatten() {
        let aname = attr.key.as_ref();
        let local = aname.rsplit(|b| *b == b':').next().unwrap_or(aname);
        if local == key {
            return attr.unescape_value().ok().map(|v| v.trim().to_string());
        }
    }
    None
}