Serialize/deserialize exception codes.

This commit is contained in:
losfair
2020-01-10 02:53:08 +08:00
parent f44517b9fb
commit 4b5b8976e9
2 changed files with 11 additions and 2 deletions

View File

@ -184,14 +184,20 @@ pub struct CompilerConfig {
}
/// An exception table for a `RunnableModule`.
#[derive(Clone, Debug, Default)]
#[derive(Clone, Debug, Default, Serialize, Deserialize)]
pub struct ExceptionTable {
/// Mappings from offsets in generated machine code to the corresponding exception code.
pub offset_to_code: HashMap<usize, ExceptionCode>,
}
impl ExceptionTable {
pub fn new() -> Self {
Self::default()
}
}
/// The code of an exception.
#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd)]
#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Serialize, Deserialize)]
pub enum ExceptionCode {
/// An `unreachable` opcode was executed.
Unreachable,