Skip to main content

surrealdb_expr/expr/
view.rs

1use std::fmt::Debug;
2
3use surrealdb_strand::TableName;
4use surrealdb_types::{SqlFormat, ToSql};
5
6use crate::expr::statements::info::InfoStructure;
7use crate::expr::{Cond, Fields, Groups, Value};
8
9#[derive(Clone, Debug, Eq, PartialEq, Hash)]
10pub struct View {
11	pub expr: Fields,
12	pub what: Vec<TableName>,
13	pub cond: Option<Cond>,
14	pub group: Option<Groups>,
15}
16
17impl ToSql for View {
18	fn fmt_sql(&self, f: &mut String, fmt: SqlFormat) {
19		let sql_view: crate::sql::View = self.clone().into();
20		sql_view.fmt_sql(f, fmt);
21	}
22}
23impl InfoStructure for View {
24	fn structure(self) -> Value {
25		self.to_sql().into()
26	}
27}