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_classes: Vec<ClassSummary>,
12 pub component_decorators: Vec<DecoratorSummary>,
14 pub route_decorators: Vec<DecoratorSummary>,
15 pub class_declarations: Vec<ClassSummary>,
16 pub render_methods: Vec<RenderMethodSummary>,
17 pub diagnostics: Vec<Diagnostic>,
18}
19
20#[derive(Debug, Clone, PartialEq, Eq)]
21pub struct DecoratorSummary {
22 pub name: String,
23 pub argument: Option<String>,
24 pub span: Span,
25}
26
27#[derive(Debug, Clone, PartialEq, Eq)]
28pub struct ClassSummary {
29 pub name: String,
30 pub span: Span,
31}
32
33#[derive(Debug, Clone, PartialEq, Eq)]
34pub struct RenderMethodSummary {
35 pub span: Span,
36}
37
38#[derive(Debug, Clone, PartialEq, Eq)]
39pub struct Diagnostic {
40 pub severity: Severity,
41 pub code: String,
42 pub message: String,
43 pub span: Option<Span>,
44}
45
46#[derive(Debug, Clone, PartialEq, Eq)]
47pub enum Severity {
48 Info,
49 Warning,
50 Error,
51}
52
53#[derive(Debug, Clone, Copy, PartialEq, Eq)]
54pub struct Span {
55 pub start: usize,
56 pub end: usize,
57 pub line: usize,
58 pub column: usize,
59}