pallas_chainsync/
protocol.rs1use std::fmt::Debug;
2
3use pallas_machines::{primitives::Point, DecodePayload, EncodePayload};
4
5#[derive(Debug)]
6pub struct Tip(pub Point, pub u64);
7
8#[derive(Debug, PartialEq, Clone)]
9pub enum State {
10    Idle,
11    CanAwait,
12    MustReply,
13    Intersect,
14    Done,
15}
16
17#[derive(Debug)]
19pub enum Message<C>
20where
21    C: EncodePayload + DecodePayload + Sized,
22{
23    RequestNext,
24    AwaitReply,
25    RollForward(C, Tip),
26    RollBackward(Point, Tip),
27    FindIntersect(Vec<Point>),
28    IntersectFound(Point, Tip),
29    IntersectNotFound(Tip),
30    Done,
31}