Skip to main content

markdown_live_preview/
lib.rs

1use 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>>;