vespertide_core/schema/
primary_key.rs

1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4use crate::schema::names::ColumnName;
5
6#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
7#[serde(rename_all = "snake_case")]
8pub struct PrimaryKeyDef {
9    #[serde(default)]
10    pub auto_increment: bool,
11    pub columns: Vec<ColumnName>,
12}
13
14#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
15#[serde(rename_all = "snake_case", untagged)]
16pub enum PrimaryKeySyntax {
17    Bool(bool),
18    Object(PrimaryKeyDef),
19}