small software-rendered rust tty
serde
| -rw-r--r-- | Cargo.toml | 4 | ||||
| -rw-r--r-- | src/term.rs | 5 | ||||
| -rw-r--r-- | src/term/cells.rs | 1 |
3 files changed, 9 insertions, 1 deletions
@@ -21,8 +21,10 @@ libc = "0.2.172" minifb = "0.28.0" nix = { version = "0.30.1", features = ["process", "term"] } parking_lot = "0.12.3" +serde = { version = "1.0.228", features = ["derive"] } swash = "0.2.4" -winit = { version = "0.31.0-beta.2", default-features = false, features = ["x11"] } +winit = { version = "0.31.0-beta.2", default-features = false, features = ["wayland", "x11"] } +winit-wayland = "=0.31.0-beta.2" [profile.release] debug = 0 diff --git a/src/term.rs b/src/term.rs index 076f101..f713d40 100644 --- a/src/term.rs +++ b/src/term.rs @@ -7,6 +7,7 @@ use ctlfun::TerminalInput::*; use ctlfun::{ControlFunction, TerminalInputParser}; use dsb::cell::Style; +#[derive(serde::Deserialize, serde::Serialize)] pub struct Terminal { pub style: Style, pub cursor: (u16, u16), @@ -14,7 +15,9 @@ pub struct Terminal { pub view_o: Option<usize>, pub cells: Cells, + #[serde(skip)] pub p: TerminalInputParser, + #[serde(skip)] pub mode: Mode, pub alternate: Option<Box<Self>>, @@ -39,7 +42,9 @@ impl Terminal { } } } +#[derive(Default)] pub enum Mode { + #[default] Normal, Raw, } diff --git a/src/term/cells.rs b/src/term/cells.rs index 034a60f..136fc64 100644 --- a/src/term/cells.rs +++ b/src/term/cells.rs @@ -1,4 +1,5 @@ // one-indexed cell array +#[derive(serde::Deserialize, serde::Serialize)] pub struct Cells { pub size: (u16, u16), pub cells: Vec<Cell>, |