Skip to main content

linkrs_query/parser/ast/stmt/
migrate.rs

1use linkrs_core::types::Span;
2
3#[derive(Debug, Clone, PartialEq)]
4pub struct MigratePlanStmt {
5    pub span: Span,
6    pub space: String,
7    pub label: String,
8    pub is_edge: bool,
9    pub from_version: u64,
10    pub to_version: u64,
11}
12
13#[derive(Debug, Clone, PartialEq)]
14pub struct MigrateExecuteStmt {
15    pub span: Span,
16    pub plan_json: String,
17}
18
19#[derive(Debug, Clone, PartialEq)]
20pub struct MigrateRollbackStmt {
21    pub span: Span,
22    pub plan_json: String,
23}
24
25#[derive(Debug, Clone, PartialEq)]
26pub enum MigrateStmt {
27    Plan(MigratePlanStmt),
28    Execute(MigrateExecuteStmt),
29    Rollback(MigrateRollbackStmt),
30}
31
32impl MigrateStmt {
33    pub fn span(&self) -> Span {
34        match self {
35            MigrateStmt::Plan(s) => s.span,
36            MigrateStmt::Execute(s) => s.span,
37            MigrateStmt::Rollback(s) => s.span,
38        }
39    }
40}