use serde::{Deserialize, Serialize}; use super::ids::FunctionId; use super::block::Block; use super::types::Type; use std::collections::HashMap; #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] pub struct Param { pub name: String, pub ty: Type, } /// A function within a module, composed of basic blocks forming a CFG. #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] pub struct Function { pub id: FunctionId, pub name: String, pub params: Vec, pub return_type: Type, pub blocks: Vec, #[serde(default)] pub local_types: HashMap, }