Skip to main content

safe_migrate/model/
function.rs

1use crate::ast::identifiers::ObjectId;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
5pub enum Volatility {
6    Volatile,
7    Stable,
8    Immutable,
9}
10
11#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
12pub enum SecurityMode {
13    Invoker,
14    Definer,
15}
16
17#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
18pub struct FunctionState {
19    pub id: ObjectId,
20    pub arg_types: Vec<String>,
21    pub return_type: String,
22    pub volatility: Volatility,
23    pub language: String,
24    pub security: SecurityMode,
25}
26
27#[derive(Debug, Clone, PartialEq)]
28pub enum FunctionOverlay {
29    Present(FunctionState),
30    Dropped,
31}