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}