userspace/file/format/elf/
result.rs

1ample::result!(
2    Ok;
3    "Human Ok";
4    usize;
5    [
6        [1; USERSPACE_FILE_FORMAT_ELF_DEFAULT_OK; Default; usize; "ZE"; "Entry to ze"],
7        [2; USERSPACE_FILE_FORMAT_ELF_DTYPE_OK; DType; crate::file::format::elf::dtype::Ok; "ZE"; "Entry to ze"],
8        [3; USERSPACE_FILE_FORMAT_ELF_HEADER_OK; Header; crate::file::format::elf::header::Ok; "ZE"; "Entry to ze"],
9    ];
10    Error;
11    "Human error";
12    usize;
13    [
14        [1; USERSPACE_FILE_FORMAT_ELF_DEFAULT_ERROR; Default; usize; "ZE"; "Entry to ze"],
15        [2; USERSPACE_FILE_FORMAT_ELF_DTYPE_ERROR; DType; crate::file::format::elf::dtype::Error; "ZE"; "Entry to ze"],
16        [3; USERSPACE_FILE_FORMAT_ELF_HEADER_ERROR; Header; crate::file::format::elf::header::Error; "ZE"; "Entry to ze"],
17    ]
18);
19
20impl Ok {
21    pub fn from_no(no: usize) -> Self {
22        Ok::Default(no)
23    }
24}
25
26impl Error {
27    pub fn from_no(no: usize) -> Self {
28        Error::Default(no)
29    }
30}
31
32pub type Result = core::result::Result<Ok, Error>;
33
34pub fn handle_result(result: usize) -> Result {
35    if (result as isize) < 0 {
36        Err(Error::from_no(result))
37    } else {
38        Ok(Ok::from_no(result))
39    }
40}