node.rs
1 #[derive(Debug, Clone)] 2 pub struct GetHeadRequest { 3 pub key: distrox_model::key::PublicKey, 4 } 5 6 #[derive(Debug, Clone)] 7 pub struct GetHeadResponse(pub Option<distrox_model::node::NodeId>); 8 9 pub struct GetHeadFlow; 10 11 impl crate::flow::Flow for GetHeadFlow { 12 type Request = GetHeadRequest; 13 type Response = GetHeadResponse; 14 15 type Error = NodeError; 16 } 17 18 #[derive(Debug, Clone)] 19 pub struct SetHeadRequest { 20 pub key: distrox_model::key::PublicKey, 21 pub id: distrox_model::node::NodeId, 22 } 23 24 #[derive(Debug, Clone)] 25 pub struct SetHeadResponse(pub ()); 26 27 pub struct SetHeadFlow; 28 29 impl crate::flow::Flow for SetHeadFlow { 30 type Request = SetHeadRequest; 31 type Response = SetHeadResponse; 32 33 type Error = NodeError; 34 } 35 36 #[derive(Debug, Clone)] 37 pub struct GetNodeRequest { 38 pub id: distrox_model::node::NodeId, 39 } 40 41 #[derive(Debug, Clone)] 42 pub struct GetNodeResponse( 43 pub Option<( 44 distrox_model::node::Node, 45 nonempty::NonEmpty<distrox_model::node::Signature>, 46 )>, 47 ); 48 49 pub struct GetNodeFlow; 50 51 impl crate::flow::Flow for GetNodeFlow { 52 type Request = GetNodeRequest; 53 type Response = GetNodeResponse; 54 55 type Error = NodeError; 56 } 57 58 #[derive(Debug, Clone)] 59 pub struct AddNodeRequest { 60 pub id: distrox_model::node::NodeId, 61 pub node: distrox_model::node::Node, 62 pub signature: nonempty::NonEmpty<distrox_model::node::Signature>, 63 } 64 65 #[derive(Debug, Clone)] 66 pub struct AddNodeResponse(pub ()); 67 68 pub struct AddNodeFlow; 69 70 impl crate::flow::Flow for AddNodeFlow { 71 type Request = AddNodeRequest; 72 type Response = AddNodeResponse; 73 74 type Error = NodeError; 75 } 76 77 #[derive(Debug, thiserror::Error)] 78 #[error(transparent)] 79 pub struct NodeError(pub tower::BoxError);