⎇ d3649bfd1a80153652c2a028315369bb4b184024
crates/core/brahman-card-wit/examples/brahman-wit-info.rs
History
Who touched what
raw
feat(core): brahman-card-wit — extractor opcional de contratos WIT
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}