Skip to main content

presolve_compiler/
model.rs

1use std::path::PathBuf;
2
3#[derive(Debug, Clone, PartialEq, Eq)]
4pub struct SourceSummary {
5    pub path: PathBuf,
6    pub byte_len: usize,
7    pub line_count: usize,
8    pub char_count: usize,
9    pub has_tsx_like_syntax: bool,
10    pub component_decorators: Vec<DecoratorSummary>,
11    pub route_decorators: Vec<DecoratorSummary>,
12    pub class_declarations: Vec<ClassSummary>,
13    pub render_methods: Vec<RenderMethodSummary>,
14    pub diagnostics: Vec<Diagnostic>,
15}
16
17#[derive(Debug, Clone, PartialEq, Eq)]
18pub struct DecoratorSummary {
19    pub name: String,
20    pub argument: Option<String>,
21    pub span: Span,
22}
23
24#[derive(Debug, Clone, PartialEq, Eq)]
25pub struct ClassSummary {
26    pub name: String,
27    pub span: Span,
28}
29
30#[derive(Debug, Clone, PartialEq, Eq)]
31pub struct RenderMethodSummary {
32    pub span: Span,
33}
34
35#[derive(Debug, Clone, PartialEq, Eq)]
36pub struct Diagnostic {
37    pub severity: Severity,
38    pub code: String,
39    pub message: String,
40    pub span: Option<Span>,
41}
42
43#[derive(Debug, Clone, PartialEq, Eq)]
44pub enum Severity {
45    Info,
46    Warning,
47    Error,
48}
49
50#[derive(Debug, Clone, Copy, PartialEq, Eq)]
51pub struct Span {
52    pub start: usize,
53    pub end: usize,
54    pub line: usize,
55    pub column: usize,
56}