markdown_live_preview/
lib.rs1use std::sync::Arc;
2
3use serde::Serialize;
4
5pub mod http_server;
6pub mod messages;
7pub mod tcp_server;
8
9use messages::Message;
10use tokio::sync::RwLock;
11
12#[derive(Debug, Default, Serialize)]
13pub struct AppState {
14 pub content: Vec<String>,
15 pub cursor: (usize, usize),
16 pub messages: Vec<Message>,
17
18 #[serde(skip_serializing)]
19 pub ws_clients: Vec<tokio::sync::mpsc::UnboundedSender<axum::extract::ws::Message>>,
20}
21
22pub type SharedState = Arc<RwLock<AppState>>;