Skip to main content

surrealdb_sql/record_id/
range.rs

1use std::ops::Bound;
2
3use surrealdb_types::{SqlFormat, ToSql};
4
5use super::RecordIdKeyLit;
6
7#[derive(Clone, Debug, PartialEq, Eq)]
8pub struct RecordIdKeyRangeLit {
9	pub start: Bound<RecordIdKeyLit>,
10	pub end: Bound<RecordIdKeyLit>,
11}
12
13impl ToSql for RecordIdKeyRangeLit {
14	fn fmt_sql(&self, f: &mut String, fmt: SqlFormat) {
15		match &self.start {
16			Bound::Unbounded => {}
17			Bound::Included(v) => v.fmt_sql(f, fmt),
18			Bound::Excluded(v) => {
19				v.fmt_sql(f, fmt);
20				f.push('>');
21			}
22		}
23		match &self.end {
24			Bound::Unbounded => f.push_str(".."),
25			Bound::Excluded(v) => {
26				f.push_str("..");
27				v.fmt_sql(f, fmt);
28			}
29			Bound::Included(v) => {
30				f.push_str("..=");
31				v.fmt_sql(f, fmt);
32			}
33		}
34	}
35}