Skip to main content

reifydb_core/interface/catalog/
view.rs

1// SPDX-License-Identifier: AGPL-3.0-or-later
2// Copyright (c) 2025 ReifyDB
3
4use serde::{Deserialize, Serialize};
5
6use crate::interface::catalog::{
7	column::ColumnDef,
8	id::{NamespaceId, ViewId},
9	key::PrimaryKeyDef,
10};
11
12#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)]
13pub enum ViewKind {
14	Deferred,
15	Transactional,
16}
17
18#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
19pub struct ViewDef {
20	pub id: ViewId,
21	pub namespace: NamespaceId,
22	pub name: String,
23	pub kind: ViewKind,
24	pub columns: Vec<ColumnDef>,
25	pub primary_key: Option<PrimaryKeyDef>,
26}