machine_check_common/iir/
variable.rs

1use std::fmt::Debug;
2
3use serde::{Deserialize, Serialize};
4
5use crate::iir::{path::IIdent, ty::IGeneralType};
6
7#[derive(Clone, Copy, Hash, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
8pub struct IVarId(pub usize);
9
10#[derive(Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
11pub struct IVarInfo {
12    pub ident: IIdent,
13    pub ty: IGeneralType,
14}
15
16impl Debug for IVarId {
17    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
18        write!(f, "#{}", self.0)
19    }
20}
21
22impl Debug for IVarInfo {
23    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
24        self.ident.fmt(f)?;
25        f.write_str(": ")?;
26        self.ty.fmt(f)
27    }
28}