timely_communication/
logging.rs
1use columnar::Columnar;
4use serde::{Serialize, Deserialize};
5use timely_container::CapacityContainerBuilder;
6
7#[derive(Debug, PartialEq, Eq, Hash, Clone, Copy, Serialize, Deserialize, Columnar)]
9pub struct CommunicationSetup {
10 pub sender: bool,
12 pub process: usize,
14 pub remote: Option<usize>,
16}
17
18#[derive(Debug, PartialEq, Eq, Hash, Clone, Copy, Serialize, Deserialize, Columnar)]
20pub enum CommunicationEvent {
21 Message(MessageEvent),
23 State(StateEvent),
25 Setup(CommunicationSetup)
27}
28
29#[derive(Debug, PartialEq, Eq, Hash, Clone, Copy, Serialize, Deserialize, Columnar)]
31pub struct MessageEvent {
32 pub is_send: bool,
34 pub header: crate::networking::MessageHeader,
36}
37
38#[derive(Debug, PartialEq, Eq, Hash, Clone, Copy, Serialize, Deserialize, Columnar)]
40pub struct StateEvent {
41 pub send: bool,
43 pub process: usize,
45 pub remote: usize,
47 pub start: bool,
49}
50
51impl From<MessageEvent> for CommunicationEvent {
52 fn from(v: MessageEvent) -> CommunicationEvent { CommunicationEvent::Message(v) }
53}
54impl From<StateEvent> for CommunicationEvent {
55 fn from(v: StateEvent) -> CommunicationEvent { CommunicationEvent::State(v) }
56}
57
58pub type CommunicationEventBuilder = CapacityContainerBuilder<Vec<(std::time::Duration, CommunicationEvent)>>;