1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
use rusqlite::Result as SqlResult;
use rusqlite::types::{
	FromSql,
	ToSql,
	ValueRef,
	FromSqlResult,
	ToSqlOutput
};

use super::{
	Point,
	Span,
};


impl FromSql for Point {
	fn column_result(value: ValueRef<'_>) -> FromSqlResult<Self> {
		i64::column_result(value).map(Self::from_epoch)
	}
}
impl ToSql for Point {
	fn to_sql(&self) -> SqlResult<ToSqlOutput<'_>> {
		self.timestamp.to_sql()
	}
}

impl FromSql for Span {
	fn column_result(value: ValueRef<'_>) -> FromSqlResult<Self> {
		u64::column_result(value).map(Self::from_seconds)
	}
}
impl ToSql for Span {
	fn to_sql(&self) -> SqlResult<ToSqlOutput<'_>> {
		self.seconds.to_sql()
	}
}