Skip to main content

markdown_live_preview/
messages.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize)]
4#[serde(tag = "event", rename_all = "snake_case")]
5pub enum OutgoingMessage {
6    FullRender {
7        html: String,
8    },
9    #[allow(dead_code)]
10    Pong,
11}
12#[derive(Debug, Deserialize, Serialize, Clone)]
13#[serde(tag = "event", content = "data", rename_all = "snake_case")]
14pub enum Message {
15    Init(InitMessage),
16    BufferChange(BufferChangeMessage),
17    CursorMoved(CursorMessage),
18}
19
20#[derive(Debug, Deserialize, Serialize, Clone)]
21pub struct CursorMessage {
22    pub cursor: (usize, usize),
23}
24
25#[derive(Debug, Deserialize, Serialize, Clone)]
26pub struct InitMessage {
27    pub content: Vec<String>,
28    pub cursor: (usize, usize),
29}
30
31#[derive(Debug, Deserialize, Serialize, Clone)]
32pub struct BufferChangeMessage {
33    pub line: usize,
34    pub new_text: String,
35}