Skip to main content

systemprompt_loader/module_loader/
mod.rs

1//! Thin wrapper around the `inventory`-driven extension registry.
2//!
3//! Re-exported here so that the extension framework, the schema
4//! collector, and [`crate::ConfigLoader`] are all reachable from a single
5//! re-export point in this crate.
6//!
7//! Copyright (c) systemprompt.io — Business Source License 1.1.
8//! See <https://systemprompt.io> for licensing details.
9
10mod modules;
11
12use std::sync::Arc;
13use systemprompt_extension::{Extension, LoaderError, SchemaDefinition};
14
15#[derive(Debug, Clone, Copy)]
16pub struct ModuleLoader;
17
18impl ModuleLoader {
19    pub fn discover_extensions() -> Result<Vec<Arc<dyn Extension>>, LoaderError> {
20        modules::discover_extensions()
21    }
22
23    pub fn collect_extension_schemas() -> Result<Vec<SchemaDefinition>, LoaderError> {
24        modules::collect_extension_schemas()
25    }
26}