1use common::fmt::EscapeKwFreeIdent;
2use surrealdb_strand::Strand;
3use surrealdb_types::{SqlFormat, ToSql, write_sql};
4
5#[derive(Clone, Debug, Default, PartialEq, Eq, Hash)]
6pub struct Model {
7 pub name: Strand,
8 pub version: Strand,
9}
10
11impl ToSql for Model {
12 fn fmt_sql(&self, f: &mut String, fmt: SqlFormat) {
13 f.push_str("ml");
14 for s in self.name.as_str().split("::") {
15 f.push_str("::");
16 write_sql!(f, fmt, "{}", EscapeKwFreeIdent(s));
17 }
18
19 write_sql!(f, fmt, "<{}>", self.version.as_str());
20 }
21}