tawasuyu

tawasuyu/brahman

Rust 326TOML 123JSON 17Markdown 144606 Sutichaykuna

⎇ d3649bfd1a80153652c2a028315369bb4b184024 crates/core/brahman-handshake/examples/probe.rs Rust · 51 siq'ikuna · 1.4 KB Ñawpa willay Pi imata llamkarqan ch'uya

feat(ente-zero): enchufa el handshake server al Init real df9d10cc5 · Sergio ·

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}