Skip to main content

registry_demo/
registry_demo.rs

1//! Example: Using the built-in registry and manifest system
2//!
3//! Run with: cargo run --example registry_demo -p aether-ndk
4
5use aether_ndk::registry::builtin_registry;
6use aether_ndk::schema::schema_to_json;
7
8fn main() {
9    let registry = builtin_registry();
10
11    println!("=== AetherSDK Node Registry ===\n");
12    println!("Registered nodes: {}\n", registry.len());
13
14    for name in registry.list() {
15        let defs = registry.param_defs(name).unwrap_or(&[]);
16        println!("  {name}");
17        for d in defs {
18            println!("    • {:<16} [{:>7.1} – {:>7.1}]  default: {:.3}",
19                d.name, d.min, d.max, d.default);
20        }
21    }
22
23    println!("\n=== JSON Schema (first 20 lines) ===\n");
24    let schema = schema_to_json(&registry);
25    for line in schema.lines().take(20) {
26        println!("{line}");
27    }
28    println!("...");
29
30    // Demonstrate instantiation
31    println!("\n=== Instantiation Test ===\n");
32    for name in registry.list() {
33        let node = registry.create(name);
34        println!("  {} → {}", name, if node.is_some() { "✓" } else { "✗" });
35    }
36}