pub enum BreakpointType {
Line{ filename: String, lineno: u32 },
Call{ function: String },
Return{ function: String },
Exception{ exception: String },
Conditional{ expression: String, filename: String },
Watch{ expression: String },
}
pub enum BreakpointState {
Enabled,
Disabled
}
pub enum SpawnpointState {
Enabled,
Disabled
}
pub enum RedirectionType {
Disable,
Copy,
Redirect
}
pub enum Command {
ProxyInit { port: u32, ide_key: String, multi_debug: Option<bool> },
ProxyStop { ide_key: String },
Status,
FeatureGet{ name: String },
FeatureSet{ name: String, value: String },
Run,
StepInto,
StepOver,
StepOut,
Stop,
Detach,
BreakpointSet{
btype: BreakpointType,
state: Option<BreakpointState>,
hit_value: u32,
temporary: bool,
},
BreakpointGet{ breakpoint_id: u32 },
BreakpointUpdate{
breakpoint_id: u32,
state: Option<BreakpointState>,
lineno: Option<u32>,
hit_value: Option<u32>,
hit_condition: Option<String>,
},
BreakpointRemove { breakpoint_id: u32 },
BreapointList,
StackDepth,
StackGet { stack_depth: Option<u32> },
ContextNames { stack_depth: Option<u32> },
ContextGet{ stack_depth: Option<u32>, context_id: Option<u32> },
TypeMapGet,
PropertyGet {
stack_depth: Option<u32>,
context_id: Option<u32>,
property_long_name: String,
max_data: Option<u32>,
data_page: Option<String>,
property_key: Option<u32>,
},
PropertySet {
stack_depth: Option<u32>,
context_id: Option<u32>,
property_long_name: String,
max_data: Option<u32>,
data_type: Option<String>,
property_address: Option<u32>,
},
PropertyValue {
stack_depth: Option<u32>,
context_id: Option<u32>,
property_long_name: String,
max_data: Option<u32>,
data_page: Option<String>,
property_address: Option<u32>,
property_key: Option<u32>,
},
Source { begin_line: Option<u32>, end_line: Option<u32>, file_uri: String },
StdOut { rediretion_type: RedirectionType },
StdErr { rediretion_type: RedirectionType },
StdIn { redirect: bool },
Break,
Eval {
stack_depth: Option<u32>,
data_page: Option<String>,
},
Expr,
Exec,
SpawnpointSet {
filename: Option<String>,
lineno: Option<u32>,
state: Option<SpawnpointState>,
},
SpawnpointGet { id: u32 },
SpawnpointUpdate { lineno: Option<u32>, state: Option<SpawnpointState> },
SpawnpointRemove { id: u32 },
SpawnpointList,
Interact { mode: u32 },
}