presolve_compiler/
model.rs1use 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}