1pub mod arena;
7mod display;
8mod error;
9mod expr;
10mod func;
11mod global;
12pub mod graph;
13mod stmt;
14mod types;
15
16pub use arena::{Arena, Handle, Range, UniqueArena};
17pub use display::{dump_module, format_type, format_type_inner};
18pub use error::IrError;
19pub use expr::{
20 AtomicFunction, BinaryOp, Expression, Literal, MathFunction, SwizzleComponent, UnaryOp,
21};
22pub use func::{EntryPoint, Function, FunctionArgument, FunctionResult, LocalVariable};
23pub use global::{AddressSpace, Binding, BuiltIn, GlobalVariable, ResourceBinding, StorageAccess};
24pub use graph::ActivationFunction;
25pub use stmt::{Barrier, Block, Statement};
26pub use types::{
27 ArraySize, Bytes, Dimension, MemoryLayout, Scalar, ScalarKind, StructMember, TensorShape, Type,
28 TypeInner, VectorSize,
29};
30
31#[derive(Clone, Debug, Default)]
33pub struct Module {
34 pub types: UniqueArena<Type>,
36 pub global_variables: Arena<GlobalVariable>,
38 pub global_expressions: Arena<Expression>,
40 pub functions: Arena<Function>,
42 pub entry_points: Vec<EntryPoint>,
44}