Skip to main content

coven_database/
store_coordinates.rs

1use super::*;
2
3impl Database {
4    pub fn sequence_from_sqlite(device_id: &str, value: i64) -> Result<u64, DbError> {
5        let value = u64::try_from(value).map_err(|_| {
6            DbError::Message(format!(
7                "Store position for {device_id:?} contains negative sequence {value}"
8            ))
9        })?;
10        if value == 0 {
11            return Err(DbError::Message(format!(
12                "Store position for {device_id:?} contains sequence zero"
13            )));
14        }
15        Ok(value)
16    }
17
18    pub fn sequence_to_sqlite(device_id: &str, value: u64) -> Result<i64, DbError> {
19        if value == 0 {
20            return Err(DbError::Message(format!(
21                "Store position for {device_id:?} cannot use sequence zero"
22            )));
23        }
24        i64::try_from(value).map_err(|_| {
25            DbError::Message(format!(
26                "Store position for {device_id:?} exceeds SQLite INTEGER"
27            ))
28        })
29    }
30}