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()
}
}