iroh_node_util/rpc/proto/
node.rs1use std::collections::BTreeMap;
3
4use nested_enum_utils::enum_conversions;
5use quic_rpc_derive::rpc_requests;
6use serde::{Deserialize, Serialize};
7
8use super::{RpcResult, RpcService};
9use crate::rpc::client::net::NodeStatus;
10
11#[allow(missing_docs)]
12#[derive(strum::Display, Debug, Serialize, Deserialize)]
13#[enum_conversions(super::Request)]
14#[rpc_requests(RpcService)]
15pub enum Request {
16 #[rpc(response = RpcResult<NodeStatus>)]
17 Status(StatusRequest),
18 #[rpc(response = RpcResult<StatsResponse>)]
19 Stats(StatsRequest),
20 #[rpc(response = ())]
21 Shutdown(ShutdownRequest),
22}
23
24#[allow(missing_docs)]
25#[derive(strum::Display, Debug, Serialize, Deserialize)]
26#[enum_conversions(super::Response)]
27pub enum Response {
28 Status(RpcResult<NodeStatus>),
29 Stats(RpcResult<StatsResponse>),
30 Shutdown(()),
31}
32
33#[derive(Serialize, Deserialize, Debug)]
35pub struct ShutdownRequest {
36 pub force: bool,
38}
39
40#[derive(Serialize, Deserialize, Debug)]
42pub struct StatusRequest;
43
44#[derive(Serialize, Deserialize, Debug)]
46pub struct StatsRequest {}
47
48#[derive(Serialize, Deserialize, Debug)]
50pub struct CounterStats {
51 pub value: u64,
53 pub description: String,
55}
56
57#[derive(Serialize, Deserialize, Debug)]
59pub struct StatsResponse {
60 pub stats: BTreeMap<String, CounterStats>,
62}