1mod errors;
2
3use std::collections::BTreeMap;
4pub use errors::{Error, Result};
5use serde::{Deserialize, Serialize};
6
7mod der;
8mod ser;
9
10#[derive(Debug, Default, Serialize, Deserialize)]
11pub struct TmLanguage {
12 #[serde(default)]
13 pub information_for_contributors: Vec<String>,
14 #[serde(default)]
15 pub version: String,
16 #[serde(default)]
17 pub name: String,
18 #[serde(rename = "scopeName")]
19 pub scope_name: String,
20 #[serde(default)]
21 pub patterns: Vec<TmPattern>,
22 #[serde(default)]
23 pub repository: BTreeMap<String, TmPattern>,
24}
25
26#[derive(Debug)]
27pub enum TmPattern {
28 Include {
29 include: String,
30 },
31 Complete {
32 name: String,
33 comment: String,
34 begin: String,
35 begin_captures: TmCaptures,
36 end: String,
37 end_captures: TmCaptures,
38 matches: String,
39 captures: TmCaptures,
40 patterns: Vec<TmPattern>,
41 },
42}
43
44#[derive(Debug, Default)]
45pub struct TmCaptures {
46 pub inner: BTreeMap<usize, TmPattern>,
47}