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}