#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum IdentifierKind {
Type,
Method,
Field,
Parameter,
}
#[derive(Debug, Clone, Default)]
pub struct RenameContext {
pub kind: Option<IdentifierKind>,
pub call_targets: Vec<String>,
pub string_literals: Vec<String>,
pub api_calls: Vec<ApiCallInfo>,
pub dotnet_type: Option<String>,
pub parameters: Vec<ParamInfo>,
pub field_accesses: Vec<String>,
pub base_class: Option<String>,
pub interfaces: Vec<String>,
pub parent_type: Option<String>,
pub siblings: Vec<String>,
pub call_site_skeleton: Option<String>,
pub phase_narrative: Vec<PhaseInfo>,
pub caller_context: Vec<CallerInfo>,
pub rejected_names: Vec<String>,
}
#[derive(Debug, Clone)]
pub struct PhaseInfo {
pub label: String,
pub call_targets: Vec<String>,
pub opcode_profile: Option<OpcodeProfile>,
pub structure: Option<String>,
}
#[derive(Debug, Clone, Default)]
pub struct OpcodeProfile {
pub calls: u32,
pub strings: u32,
pub field_io: u32,
pub bitwise: u32,
pub arithmetic: u32,
pub array: u32,
pub comparison: u32,
pub conversion: u32,
}
#[derive(Debug, Clone)]
pub struct ParamInfo {
pub dotnet_type: String,
pub known_name: Option<String>,
}
#[derive(Debug, Clone)]
pub struct ApiCallInfo {
pub method_name: String,
pub argument_position: Option<usize>,
}
#[derive(Debug, Clone)]
pub struct CallerInfo {
pub caller_name: String,
pub nearby_strings: Vec<String>,
pub return_usage: Option<String>,
}