1mod function;
6mod metadata;
7mod module;
8mod op;
9mod region;
10mod string_table;
11pub mod value;
12
13pub mod optype;
14
15pub use function::{Function, FunctionDeclaration, FunctionDefinition, FunctionId};
16pub use metadata::{HasMetadata, Metadata};
17pub use module::Module;
18pub use op::Operation;
19pub use region::Region;
20pub use value::{FunctionIOValue, ValueId, ValueTable, WireValue};
21
22use derive_more::derive::{Display, Error, From};
23
24pub trait ReadJeff {
26 fn module(&self) -> Module<'_>;
28}
29
30#[derive(Debug, Display, From, Error)]
32#[non_exhaustive]
33pub enum ReadError {
34 #[display("{context} string value has index {idx}, but only {count} entries are available")]
36 StringOutOfBounds {
37 context: &'static str,
39 idx: u32,
41 count: usize,
43 },
44 #[display("{context} string value with index {idx} was not valid utf8.")]
46 StringNotUtf8 {
47 context: &'static str,
49 idx: u32,
51 source: core::str::Utf8Error,
53 },
54 #[display("Function value has index {idx}, but only {count} entries are available")]
56 ValueOutOfBounds {
57 idx: u32,
59 count: usize,
61 },
62}