From 66026e903a8e906371d333412101acb152147f66 Mon Sep 17 00:00:00 2001 From: CleverWild Date: Sun, 15 Mar 2026 19:24:49 +0100 Subject: [PATCH] feat(poc): complete terrors PoC with main scenarios --- server/crates/arbiter-terrors-poc/src/main.rs | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/server/crates/arbiter-terrors-poc/src/main.rs b/server/crates/arbiter-terrors-poc/src/main.rs index a3bef62..d8e2f7a 100644 --- a/server/crates/arbiter-terrors-poc/src/main.rs +++ b/server/crates/arbiter-terrors-poc/src/main.rs @@ -1,5 +1,26 @@ -mod errors; -mod db; mod auth; +mod db; +mod errors; -fn main() {} +use errors::ProtoError; + +fn run(id: u32, sig: &str) { + print!("authenticate(id={id}, sig={sig:?}) => "); + match auth::authenticate(id, sig) { + Ok(nonce) => println!("Ok(nonce={nonce})"), + Err(e) => match e.narrow::() { + Ok(_) => println!("Err(NotRegistered) — handled locally"), + Err(remaining) => { + let proto = ProtoError::from(remaining); + println!("Err(ProtoError::{proto:?}) — forwarded to wire"); + } + }, + } +} + +fn main() { + run(0, "ok"); // NotRegistered + run(1, "bad"); // InvalidSignature + run(99, "ok"); // Internal + run(1, "ok"); // success +}