tawasuyu

tawasuyu/brahman

Rust 326TOML 123JSON 17Markdown 144606 Definitions

⎇ d3649bfd1a80153652c2a028315369bb4b184024 crates/core/brahman-card-wit/examples/brahman-wit-info.rs Rust · 45 lines · 1.2 KB History Who touched what raw

feat(core): brahman-card-wit — extractor opcional de contratos WIT f4dc01900 · Sergio ·

1//! `brahman-wit-info` — inspecciona un archivo WIT y lista sus worlds.
2//!
3//! Uso:
4//! ```sh
5//! cargo run -p brahman-card-wit --example brahman-wit-info -- shared_wit/protocol.wit
6//! ```
7
8use std::process::ExitCode;
9
10fn main() -> ExitCode {
11    let path = match std::env::args().nth(1) {
12        Some(p) => p,
13        None => {
14            eprintln!("uso: brahman-wit-info <ruta.wit>");
15            return ExitCode::from(2);
16        }
17    };
18
19    let worlds = match brahman_card_wit::parse_wit_file(&path) {
20        Ok(w) => w,
21        Err(e) => {
22            eprintln!("error parseando {path}: {e}");
23            return ExitCode::from(1);
24        }
25    };
26
27    if worlds.is_empty() {
28        println!("(ningún world declarado)");
29        return ExitCode::SUCCESS;
30    }
31
32    println!("{} world(s):", worlds.len());
33    for w in &worlds {
34        println!();
35        println!("  package: {}", w.package);
36        println!("  world:   {}", w.world);
37        if !w.imports.is_empty() {
38            println!("  imports: {}", w.imports.join(", "));
39        }
40        if !w.exports.is_empty() {
41            println!("  exports: {}", w.exports.join(", "));
42        }
43    }
44    ExitCode::SUCCESS
45}