1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4pub struct Position {
5 pub line: u32,
6 pub column: u32,
7}
8
9#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
10pub struct Range {
11 pub start: Position,
12 pub end: Position,
13}
14
15#[derive(Debug, Clone, Serialize, Deserialize)]
16pub struct TokenInfo {
17 pub text: String,
18 pub range: Range,
19 pub scope: String,
20 pub modifiers: Vec<String>,
21}
22
23#[derive(Debug, Clone, Serialize, Deserialize)]
24pub struct TokenCollection {
25 pub uri: String,
26 pub language: String,
27 pub tokens: Vec<TokenInfo>,
28}