fn main() {
println!("╔══════════════════════════════════════════════════════╗");
println!("║ Confium Plugin Load + Hash Demonstration ║");
println!("╚══════════════════════════════════════════════════════╝");
println!();
let message = b"hello world";
println!("Message: {:?}", String::from_utf8_lossy(message));
println!();
let _cfm = confium_core::Confium::new();
println!("Created Confium instance.");
println!("Providers loaded: {}", 0); println!();
let kinds: Vec<_> = confium_core::ffi::registry::iter().collect();
println!("Registered interface kinds:");
for kind in &kinds {
println!(" • {} (max version {})", kind.name(), kind.max_version());
}
println!();
println!("To hash a message with a real plugin:");
println!(" 1. Build the mock plugin: cargo build -p confium-mock-plugin");
println!(
" 2. Load it: cfm.load_plugin(Path::new(\"target/debug/libcfm_mock_plugin.dylib\"), &opts)"
);
println!(" 3. Hash: Hash::new(&cfm, \"SHA-256\", None, None)?.digest(b\"hello world\")");
println!();
println!("The plugin SDK macro generates all cfmp_hash_* FFI symbols from a");
println!("Rust trait impl — see crates/confium-mock-plugin/src/lib.rs.");
println!();
println!("╔══════════════════════════════════════════════════════╗");
println!("║ Confium: load any crypto algorithm as a plugin. ║");
println!("╚══════════════════════════════════════════════════════╝");
}