llvm_mapper/record/
mod.rs1pub mod alias;
8pub mod comdat;
9pub mod datalayout;
10pub mod function;
11
12use std::num::TryFromIntError;
13use std::string::FromUtf8Error;
14
15use thiserror::Error;
16
17pub use self::alias::*;
18pub use self::comdat::*;
19pub use self::datalayout::*;
20pub use self::function::*;
21use crate::block::StrtabError;
22
23#[non_exhaustive]
25#[derive(Debug, Error)]
26pub enum RecordStringError {
27 #[error("impossible string index: {0} >= {1} (field count)")]
29 BadIndex(usize, usize),
30 #[error("impossible character value in string: {0}")]
32 BadCharacter(#[from] TryFromIntError),
33 #[error("invalid string encoding: {0}")]
35 BadEncoding(#[from] FromUtf8Error),
36}
37
38#[non_exhaustive]
40#[derive(Debug, Error)]
41pub enum RecordBlobError {
42 #[error("impossible blob index: {0} >= {1} (field count)")]
44 BadIndex(usize, usize),
45 #[error("impossible byte value in blob: {0}")]
47 BadByte(#[from] TryFromIntError),
48}
49
50#[non_exhaustive]
52#[derive(Debug, Error)]
53pub enum RecordMapError {
54 #[error("error while mapping COMDAT record: {0}")]
56 Comdat(#[from] ComdatError),
57
58 #[error("error while parsing datalayout: {0}")]
60 DataLayout(#[from] DataLayoutError),
61
62 #[error("error while mapping function record: {0}")]
64 Function(#[from] FunctionError),
65
66 #[error("error while extracting string: {0}")]
68 BadRecordString(#[from] RecordStringError),
69}