diff --git a/src/runtime2/inbox.rs b/src/runtime2/inbox.rs index b14bbafdc12a4c6d71d73634fd83bd1bcecad9f9..b78e79ec1fbdf67be2196a15debcdffcf34f6ce9 100644 --- a/src/runtime2/inbox.rs +++ b/src/runtime2/inbox.rs @@ -15,14 +15,15 @@ within a certain sync-round. use std::collections::VecDeque; use std::sync::Mutex; +use super::ConnectorId; use crate::protocol::eval::ValueGroup; use super::connector::BranchId; use super::port::PortIdLocal; -use super::global_store::ConnectorId; /// A message that has been delivered (after being imbued with the receiving /// port by the scheduler) to a connector. -#[derive(Clone)] +// TODO: Remove Debug on messages +#[derive(Debug, Clone)] pub struct DataMessage { pub sending_port: PortIdLocal, pub sender_prev_branch_id: BranchId, @@ -30,14 +31,14 @@ pub struct DataMessage { pub message: ValueGroup, } -#[derive(Clone)] +#[derive(Debug, Clone)] pub enum SyncBranchConstraint { SilentPort(PortIdLocal), BranchNumber(BranchId), PortMapping(PortIdLocal, BranchId), } -#[derive(Clone)] +#[derive(Debug, Clone)] pub struct SyncConnectorSolution { pub connector_id: ConnectorId, pub terminating_branch_id: BranchId, @@ -45,13 +46,13 @@ pub struct SyncConnectorSolution { pub final_port_mapping: Vec<(PortIdLocal, BranchId)> } -#[derive(Clone)] +#[derive(Debug, Clone)] pub struct SyncConnectorConstraints { pub connector_id: ConnectorId, pub constraints: Vec, } -#[derive(Clone)] +#[derive(Debug, Clone)] pub struct SyncMessage { pub local_solutions: Vec, pub constraints: Vec, @@ -167,7 +168,7 @@ impl SyncMessage { } } -#[derive(Clone)] +#[derive(Debug, Clone)] pub struct SolutionMessage { pub comparison_number: u64, pub connector_origin: ConnectorId, @@ -177,20 +178,20 @@ pub struct SolutionMessage { /// A control message. These might be sent by the scheduler to notify eachother /// of asynchronous state changes. -#[derive(Clone)] +#[derive(Debug, Clone)] pub struct ControlMessage { pub id: u32, // generic identifier, used to match request to response pub content: ControlMessageVariant, } -#[derive(Clone)] +#[derive(Debug, Clone)] pub enum ControlMessageVariant { ChangePortPeer(PortIdLocal, ConnectorId), // specified port has a new peer, sent to owner of said port Ack, // acknowledgement of previous control message, matching occurs through control message ID. } /// Generic message contents. -#[derive(Clone)] +#[derive(Debug, Clone)] pub enum MessageContents { Data(DataMessage), // data message, handled by connector Sync(SyncMessage), // sync message, handled by both connector/scheduler @@ -200,6 +201,7 @@ pub enum MessageContents { Ping, // ping message, intentionally waking up a connector (used for native connectors) } +#[derive(Debug)] pub struct Message { pub sending_connector: ConnectorId, pub receiving_port: PortIdLocal, // may be invalid (in case of messages targeted at the connector)