libxml-rs 0.1.0-alpha.21

Native-Rust forensic reimplementation of libxml2+libxslt with C ABI drop-in replacement. Cross-version oracle matrix (libxml2 2.7.8-2.15.3, libxslt 1.1.26-1.1.45) with semantic epochs correlated to upstream commits; full xmllint/xmlcatalog/xsltproc CLIs; differential-court-verified C API closure (xmlXPath*, xmlTextReader*, xmlTextWriter*, catalogs, serialization, data globals, chvalid, encoding, the full libxslt surface) — parity ledger at 0 missing for both libxml2 and libxslt. 1135 tests passing.
Documentation
/**
 * @file
 *
 * XSLT keys API for libxml-rs
 *
 * Stub header — functions will be implemented in future phases.
 */

#ifndef __KEYS_H__
#define __KEYS_H__

#include <libxml/xmlversion.h>
#include <libxslt/xslt.h>
#include <libxslt/xsltInternals.h>

#ifdef __cplusplus
extern "C" {
#endif

/* Functions will be declared here as they are implemented. */

XMLPUBFUN int xsltAddKey(xsltStylesheetPtr style, const xmlChar *name,
                         const xmlChar *nameURI, const xmlChar *match,
                         const xmlChar *use, xmlNodePtr inst);
XMLPUBFUN void xsltInitCtxtKeys(xsltTransformContextPtr ctxt,
                                xsltDocumentPtr idoc);
XMLPUBFUN int xsltInitCtxtKey(xsltTransformContextPtr ctxt,
                              xsltDocumentPtr idoc, xsltKeyDefPtr keyDef);
XMLPUBFUN int xsltInitAllDocKeys(xsltTransformContextPtr ctxt);
XMLPUBFUN xmlNodeSetPtr xsltGetKey(xsltTransformContextPtr ctxt,
                                   const xmlChar *name, const xmlChar *nameURI,
                                   const xmlChar *value);
XMLPUBFUN void xsltFreeKeys(xsltStylesheetPtr style);
XMLPUBFUN void xsltFreeDocumentKeys(xsltDocumentPtr idoc);

#ifdef __cplusplus
}
#endif

#endif /* __KEYS_H__ */