Skip to main content

safe_migrate/model/
types.rs

1// FILE: ./src/model/types.rs
2use crate::ast::identifiers::ObjectId;
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
6pub struct TypeState {
7    pub id: ObjectId,
8    pub generation: u64,
9    pub kind: TypeKind,
10}
11
12#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
13pub enum TypeKind {
14    Enum { variants: Vec<String> },
15    Domain { base_type: String },
16    Base,
17    Composite,
18    Range,
19}
20
21#[derive(Debug, Clone, PartialEq)]
22pub enum TypeOverlay {
23    Present(TypeState),
24    Dropped,
25}