use std::collections::HashMap;
use serde::{Deserialize, Serialize};
use crate::{IrLiteral, VarId};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct ProcedureField {
pub name: String,
pub type_name: String,
pub nullable: bool,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ProcedureDefinition {
pub name: String,
pub inputs: Vec<ProcedureField>,
pub outputs: Vec<ProcedureField>,
pub rows: Vec<Vec<IrLiteral>>,
}
pub type ProcedureRegistry = HashMap<String, ProcedureDefinition>;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct ProcedureYield {
pub field: String,
pub alias: String,
pub var: VarId,
}