⎇ d3649bfd1a80153652c2a028315369bb4b184024
crates/core/brahman-handshake/examples/probe.rs
Ñawpa willay
Pi imata llamkarqan
ch'uya
feat(ente-zero): enchufa el handshake server al Init real
1//! probe — herramienta de diagnóstico del handshake.
2//!
3//! Conecta a un Init brahman vivo, hace handshake, un ping, y se va.
4//! Ruta del socket: `$BRAHMAN_INIT_SOCKET` o el default
5//! ([`brahman_handshake::transport::default_socket_path`]).
6//!
7//! Uso:
8//! ```sh
9//! cargo run -p brahman-handshake --example probe
10//! ```
11
12use std::collections::BTreeSet;
13
14use brahman_card::{Card, Payload, Supervision, CARD_SCHEMA_VERSION};
15use brahman_handshake::{client::Client, transport};
16use ulid::Ulid;
17
18#[tokio::main(flavor = "current_thread")]
19async fn main() -> anyhow::Result<()> {
20 let card = Card {
21 schema_version: CARD_SCHEMA_VERSION,
22 id: Ulid::new(),
23 label: "brahman-probe".into(),
24 payload: Payload::Virtual,
25 supervision: Supervision::OneShot,
26 provides: BTreeSet::new(),
27 requires: BTreeSet::new(),
28 ..Default::default()
29 };
30
31 let path = transport::default_socket_path();
32 println!("connecting to {}", path.display());
33
34 let mut client = Client::connect(&path, card).await?;
35 let info = client.server_info();
36 println!(
37 " HelloAck: session={} server={} protocol={} init_attached={}",
38 client.session(),
39 info.server_version,
40 info.protocol_version,
41 info.init_attached
42 );
43
44 let ts = client.ping().await?;
45 println!(" Pong: ts={}ms", ts);
46
47 client.farewell().await?;
48 println!(" Farewell OK");
49
50 Ok(())
51}