safe_migrate/model/
types.rs1use 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}