surrealdb_expr/expr/
view.rs1use 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}