1use thiserror::Error;
2
3#[derive(Error, Debug)]
5pub enum Error {
6 #[error("failed to attach to process {pid}")]
7 AttachFailed {
8 pid: u32,
9 #[source]
10 source: std::io::Error,
11 },
12
13 #[error("failed to read memory at {address:#x}")]
14 ReadFailed {
15 address: usize,
16 #[source]
17 source: std::io::Error,
18 },
19
20 #[error("failed to write memory at {address:#x}")]
21 WriteFailed {
22 address: usize,
23 #[source]
24 source: std::io::Error,
25 },
26
27 #[error("process not found: {pid}")]
28 ProcessNotFound { pid: u32 },
29
30 #[error("permission denied for process {pid}")]
31 PermissionDenied { pid: u32 },
32
33 #[error("failed to enumerate modules")]
34 ModuleEnumFailed {
35 #[source]
36 source: std::io::Error,
37 },
38
39 #[error("failed to query memory regions")]
40 RegionQueryFailed {
41 #[source]
42 source: std::io::Error,
43 },
44}
45
46pub type Result<T> = std::result::Result<T, Error>;