hypersteeldb 0.5.2

A database that compiles questions instead of guessing answers: typed vocabulary discovered from your documents, queries type-checked before they run, roaring-bitmap set algebra over reified hyperedges, and Dempster-Shafer evidence with an explicit conflict guard.
Documentation
//! OCR pipeline check against the real PP-OCRv6 models. Skips unless the models are present and a test
//! image is provided. Set STEELDB_OCR_DIR (or bundle at models/ocr) and STEELDB_OCR_TEST_IMG=<page.png>.
#![cfg(feature = "ocr")]

use std::path::PathBuf;
use steeldb::ocr::OcrEngine;

#[test]
fn ocr_recovers_text() {
    let img = match std::env::var("STEELDB_OCR_TEST_IMG") {
        Ok(p) => PathBuf::from(p),
        Err(_) => {
            eprintln!("skip: set STEELDB_OCR_TEST_IMG to a page PNG");
            return;
        }
    };
    let mut eng = match OcrEngine::default_engine() {
        Some(e) => e,
        None => {
            eprintln!("skip: OCR models absent");
            return;
        }
    };
    let text = eng.ocr_path(&img).expect("ocr");
    eprintln!("--- OCR ({} chars) ---\n{}", text.len(), text.chars().take(1500).collect::<String>());
    assert!(!text.trim().is_empty(), "expected recognized text");
}