Skip to main content

procmod_core/
error.rs

1use thiserror::Error;
2
3/// Errors that can occur during process memory operations.
4#[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
46/// Result type alias for procmod-core operations.
47pub type Result<T> = std::result::Result<T, Error>;