markdown_live_preview/
messages.rs1use 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}