Anki/rslib/src/storage/usn.rs
2020-03-26 13:06:02 +10:00

24 lines
684 B
Rust

// Copyright: Ankitects Pty Ltd and contributors
// License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
use crate::types::Usn;
use rusqlite::{
types::{FromSql, FromSqlError, ToSqlOutput, Value, ValueRef},
ToSql,
};
impl FromSql for Usn {
fn column_result(value: ValueRef<'_>) -> std::result::Result<Self, FromSqlError> {
if let ValueRef::Integer(i) = value {
Ok(Self(i as i32))
} else {
Err(FromSqlError::InvalidType)
}
}
}
impl ToSql for Usn {
fn to_sql(&self) -> rusqlite::Result<rusqlite::types::ToSqlOutput<'_>> {
Ok(ToSqlOutput::Owned(Value::Integer(self.0 as i64)))
}
}