monarch_messages/
debugger.rs1#![allow(unsafe_op_in_unsafe_fn)]
12
13use derive_more::From;
14use hyperactor::Handler;
15use hyperactor::Named;
16use pyo3::Bound;
17use pyo3::PyResult;
18use pyo3::types::PyModule;
19use pyo3::types::PyModuleMethods;
20use serde::Deserialize;
21use serde::Serialize;
22
23pub fn register_python_bindings(debugger: &Bound<'_, PyModule>) -> PyResult<()> {
24 debugger.add_class::<DebuggerAction>()?;
25 Ok(())
26}
27
28#[derive(Debug, Deserialize, Clone, Serialize, PartialEq)]
30#[pyo3::pyclass(frozen, module = "monarch._rust_bindings.monarch_messages.debugger")]
31pub enum DebuggerAction {
32 Paused(),
35
36 Attach(),
39
40 Detach(),
42
43 Write {
45 #[serde(with = "serde_bytes")]
46 bytes: Vec<u8>,
47 },
48
49 Read { requested_size: usize },
51}
52
53#[derive(Serialize, Deserialize, Debug, Clone, Named, From, Handler)]
54pub enum DebuggerMessage {
55 Action { action: DebuggerAction },
56}
57
58hyperactor::alias!(
59 DebuggerActor,
60 DebuggerMessage { cast = true },
61);