firedbg_protocol/
breakpoint.rs1use crate::source::LineColumn;
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
6pub struct Breakpoint {
8 pub id: u32,
9 pub file_id: u32,
10 pub loc: LineColumn,
11 pub loc_end: Option<LineColumn>,
12 pub breakpoint_type: BreakpointType,
13 pub capture: VariableCapture,
14}
15
16#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
17pub enum BreakpointType {
19 #[default]
20 Breakpoint,
21 FunctionCall {
22 fn_name: String,
25 },
26 FunctionReturn,
27}
28
29#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
30pub enum VariableCapture {
32 Arguments,
34 Locals,
36 Only(Vec<String>),
38 #[default]
39 None,
41}
42
43impl BreakpointType {
44 pub fn as_str(&self) -> &'static str {
45 match self {
46 Self::Breakpoint => "Breakpoint",
47 Self::FunctionCall { .. } => "FunctionCall",
48 Self::FunctionReturn => "FunctionReturn",
49 }
50 }
51}