Packages
kreuzberg
4.3.0
4.10.2
4.10.1
4.10.0
4.9.9
4.9.7
4.9.5
4.9.4
4.9.3
4.9.2
4.9.1
4.8.6
4.8.5
4.8.4
4.8.3
4.8.2
4.8.1
4.8.0
4.7.4
4.7.3
4.7.2
4.7.1
4.7.0
4.6.3
4.6.2
4.6.1
4.6.0
4.5.4
4.5.3
4.5.2
4.5.1
4.4.6
4.4.5
4.4.4
4.4.3
4.4.2
4.4.1
4.4.0
4.3.8
4.3.7
4.3.6
4.3.5
4.3.4
4.3.3
4.3.2
4.3.0
4.2.15
4.2.14
4.2.13
4.2.12
4.2.11
4.2.10
4.2.9
4.2.8
4.2.7
4.2.6
4.2.5
4.2.4
4.2.3
4.2.2
4.2.1
4.2.0
4.1.2
4.1.1
4.1.0
4.0.8
4.0.7
4.0.6
4.0.4
4.0.3
4.0.2
4.0.1
4.0.0
4.0.0-rc.27
4.0.0-rc.26
High-performance document intelligence library with OCR support
Current section
Files
Jump to
Current section
Files
native/kreuzberg_rustler/src/plugins.rs
//! Plugin management NIFs
//!
//! This module provides NIFs for managing document extractor plugins
//! through the Kreuzberg core plugin registry.
use crate::atoms;
use rustler::{Encoder, Env, NifResult, Term};
/// List all registered document extractors.
///
/// Returns the names of all document extractors currently registered
/// in the global plugin registry.
///
/// # Returns
/// * `{:ok, names}` - List of extractor name strings
/// * `{:error, reason}` - Error message string
#[rustler::nif]
pub fn list_document_extractors<'a>(env: Env<'a>) -> NifResult<Term<'a>> {
match kreuzberg::plugins::list_extractors() {
Ok(names) => Ok((atoms::ok(), names).encode(env)),
Err(e) => {
let error_msg = format!("{}", e);
Ok((atoms::error(), error_msg).encode(env))
}
}
}
/// Unregister a document extractor by name.
///
/// Removes the extractor from the global registry and calls its shutdown method.
/// Safe to call even if the extractor doesn't exist.
///
/// # Arguments
/// * `name` - String name of the extractor to unregister
///
/// # Returns
/// * `:ok` - Extractor unregistered or didn't exist
/// * `{:error, reason}` - Error message string
#[rustler::nif]
pub fn unregister_document_extractor<'a>(env: Env<'a>, name: String) -> NifResult<Term<'a>> {
match kreuzberg::plugins::unregister_extractor(&name) {
Ok(()) => Ok(atoms::ok().encode(env)),
Err(e) => {
let error_msg = format!("{}", e);
Ok((atoms::error(), error_msg).encode(env))
}
}
}
/// Clear all registered document extractors.
///
/// Removes all extractors from the global registry and calls their shutdown methods.
///
/// # Returns
/// * `:ok` - All extractors cleared
/// * `{:error, reason}` - Error message string
#[rustler::nif]
pub fn clear_document_extractors<'a>(env: Env<'a>) -> NifResult<Term<'a>> {
match kreuzberg::plugins::clear_extractors() {
Ok(()) => Ok(atoms::ok().encode(env)),
Err(e) => {
let error_msg = format!("{}", e);
Ok((atoms::error(), error_msg).encode(env))
}
}
}