Skip to main content

dap/
base_message.rs

1#[cfg(feature = "client")]
2use serde::Deserialize;
3use serde::Serialize;
4
5use crate::{events::Event, responses::Response, reverse_requests::ReverseRequest};
6
7/// Represents the base protocol message, in which all other messages are wrapped.
8///
9/// Specification: [Response](https://microsoft.github.io/debug-adapter-protocol/specification)
10#[cfg_attr(feature = "client", derive(Deserialize))]
11#[derive(Serialize, Debug)]
12#[serde(rename_all = "camelCase")]
13pub struct BaseMessage {
14    /// Sequence number of the message. The `seq` for
15    /// the first message is 1, and for each message is incremented by 1.
16    pub seq: i64,
17    #[serde(flatten)]
18    pub message: Sendable,
19}
20
21#[cfg_attr(feature = "client", derive(Deserialize))]
22#[derive(Serialize, Debug)]
23#[serde(rename_all = "camelCase")]
24#[serde(tag = "type")]
25pub enum Sendable {
26    Response(Response),
27    Event(Event),
28    ReverseRequest(ReverseRequest),
29}
30
31#[cfg(test)]
32mod tests;