1use std::{collections::HashMap, path::PathBuf, sync::Arc};
2
3use serde::{Deserialize, Serialize};
4
5pub type LineStyles = HashMap<usize, Arc<Vec<LineStyle>>>;
6
7#[derive(Serialize, Deserialize, Clone, Debug)]
8pub struct LineStyle {
9 pub start: usize,
10 pub end: usize,
11 pub style: Style,
12}
13
14#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
15pub struct Style {
16 pub fg_color: Option<String>,
17}
18
19#[derive(Serialize, Deserialize, Clone, Debug)]
20pub struct SemanticStyles {
21 pub rev: u64,
22 pub path: PathBuf,
23 pub len: usize,
24 pub styles: Vec<LineStyle>,
25}