use crate::model::Language;
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct ImportInfo {
pub source_file: String,
pub imported_names: Vec<String>,
pub line: u32,
pub is_reexport: bool,
}
impl Default for ImportInfo {
fn default() -> Self {
Self {
source_file: String::new(),
imported_names: Vec::new(),
line: 0,
is_reexport: false,
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct CallInfo {
pub caller_qn: Option<String>,
pub callee_name: String,
pub line: u32,
pub args: Vec<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct AssignInfo {
pub target_name: String,
pub source_name: String,
pub line: u32,
pub is_return_assign: bool,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct ExternInfo {
pub language: Language,
pub names: Vec<String>,
pub line: u32,
pub signature: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct ReadInfo {
pub reader_qn: Option<String>,
pub var_name: String,
pub line: u32,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct WriteInfo {
pub writer_qn: Option<String>,
pub var_name: String,
pub line: u32,
}