Initial SFERA platform baseline
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
use serde::Serialize;
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
|
||||
pub struct SourceRange {
|
||||
pub line_start: usize,
|
||||
pub line_end: usize,
|
||||
pub column_start: usize,
|
||||
pub column_end: usize,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
|
||||
pub struct ParsedProcedure {
|
||||
pub name: String,
|
||||
pub export: bool,
|
||||
pub is_function: bool,
|
||||
pub parameters: Vec<String>,
|
||||
pub source_range: SourceRange,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
|
||||
pub struct ParsedCall {
|
||||
pub caller: String,
|
||||
pub callee: String,
|
||||
pub source_range: SourceRange,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
|
||||
pub struct ParsedQuery {
|
||||
pub owner_procedure: String,
|
||||
pub query_text: String,
|
||||
pub tables: Vec<String>,
|
||||
pub source_range: SourceRange,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
|
||||
pub struct ParsedWrite {
|
||||
pub owner_procedure: String,
|
||||
pub target: String,
|
||||
pub write_type: String,
|
||||
pub source_range: SourceRange,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
|
||||
pub struct ParseDiagnostic {
|
||||
pub code: String,
|
||||
pub message: String,
|
||||
pub severity: String,
|
||||
pub source_range: Option<SourceRange>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
|
||||
pub struct ParsedSemanticUnit {
|
||||
pub source_path: String,
|
||||
pub procedures: Vec<ParsedProcedure>,
|
||||
pub calls: Vec<ParsedCall>,
|
||||
pub queries: Vec<ParsedQuery>,
|
||||
pub writes: Vec<ParsedWrite>,
|
||||
pub diagnostics: Vec<ParseDiagnostic>,
|
||||
}
|
||||
Reference in New Issue
Block a user