mirror of
https://github.com/chatmail/core.git
synced 2026-04-21 15:36:30 +03:00
improve some typehints
This commit is contained in:
@@ -531,7 +531,7 @@ impl<'a> sqlx::FromRow<'a, sqlx::sqlite::SqliteRow> for Chat {
|
||||
.unwrap_or_default(),
|
||||
visibility: row.try_get("archived")?,
|
||||
blocked: row.try_get::<Option<_>, _>("blocked")?.unwrap_or_default(),
|
||||
is_sending_locations: row.try_get("locations_send_until")?,
|
||||
is_sending_locations: row.try_get::<i32, _>("locations_send_until")? > 0,
|
||||
mute_duration: row.try_get("muted_until")?,
|
||||
};
|
||||
|
||||
@@ -2082,6 +2082,7 @@ pub async fn get_gossiped_timestamp(context: &Context, chat_id: ChatId) -> i64 {
|
||||
paramsx![chat_id],
|
||||
)
|
||||
.await
|
||||
.map(|v: i32| v as i64)
|
||||
.unwrap_or_default()
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
//! Contacts module
|
||||
|
||||
#![forbid(clippy::indexing_slicing)]
|
||||
use std::convert::TryFrom;
|
||||
|
||||
use async_std::path::PathBuf;
|
||||
use async_std::prelude::*;
|
||||
use itertools::Itertools;
|
||||
use lazy_static::lazy_static;
|
||||
use regex::Regex;
|
||||
use sqlx::Row;
|
||||
|
||||
use crate::aheader::EncryptPreference;
|
||||
use crate::chat::ChatId;
|
||||
@@ -135,10 +137,9 @@ impl Default for Origin {
|
||||
}
|
||||
impl<'a> sqlx::FromRow<'a, sqlx::sqlite::SqliteRow> for Contact {
|
||||
fn from_row(row: &sqlx::sqlite::SqliteRow) -> Result<Self, sqlx::Error> {
|
||||
use sqlx::Row;
|
||||
|
||||
let contact = Self {
|
||||
id: row.try_get::<i64, _>("id")? as u32,
|
||||
id: u32::try_from(row.try_get::<i32, _>("id")?)
|
||||
.map_err(|err| sqlx::Error::Decode(err.into()))?,
|
||||
name: row
|
||||
.try_get::<Option<String>, _>("name")?
|
||||
.unwrap_or_default(),
|
||||
@@ -674,7 +675,7 @@ SELECT c.id FROM contacts c
|
||||
.await
|
||||
.unwrap_or_default()
|
||||
.into_iter()
|
||||
.map(|id: i64| id as u32)
|
||||
.map(|id: i32| id as u32)
|
||||
.collect()
|
||||
}
|
||||
|
||||
|
||||
10
src/job.rs
10
src/job.rs
@@ -148,7 +148,7 @@ impl fmt::Display for Job {
|
||||
impl<'a> sqlx::FromRow<'a, sqlx::sqlite::SqliteRow> for Job {
|
||||
fn from_row(row: &sqlx::sqlite::SqliteRow) -> Result<Self, sqlx::Error> {
|
||||
use sqlx::Row;
|
||||
let foreign_id: i64 = row.try_get("foreign_id")?;
|
||||
let foreign_id: i32 = row.try_get("foreign_id")?;
|
||||
if foreign_id < 0 {
|
||||
return Err(sqlx::Error::Decode(
|
||||
anyhow::anyhow!("invalid foreign_id").into(),
|
||||
@@ -156,12 +156,12 @@ impl<'a> sqlx::FromRow<'a, sqlx::sqlite::SqliteRow> for Job {
|
||||
}
|
||||
|
||||
Ok(Job {
|
||||
job_id: row.try_get::<i64, _>("id")? as u32,
|
||||
job_id: row.try_get::<i32, _>("id")? as u32,
|
||||
action: row.try_get("action")?,
|
||||
foreign_id: foreign_id as u32,
|
||||
desired_timestamp: row.try_get("desired_timestamp")?,
|
||||
added_timestamp: row.try_get("added_timestamp")?,
|
||||
tries: row.try_get::<i64, _>("tries")? as u32,
|
||||
desired_timestamp: row.try_get_unchecked("desired_timestamp")?,
|
||||
added_timestamp: row.try_get_unchecked("added_timestamp")?,
|
||||
tries: row.try_get::<i32, _>("tries")? as u32,
|
||||
param: row
|
||||
.try_get::<String, _>("param")?
|
||||
.parse()
|
||||
|
||||
@@ -238,7 +238,7 @@ impl<'a> sqlx::FromRow<'a, sqlx::sqlite::SqliteRow> for Message {
|
||||
let id = row.try_get("id")?;
|
||||
|
||||
let text;
|
||||
if let Some(buf) = row.try_get::<Option<&[u8]>, _>("txt")? {
|
||||
if let Some(buf) = row.try_get_unchecked::<Option<&[u8]>, _>("txt")? {
|
||||
if let Ok(t) = String::from_utf8(buf.to_vec()) {
|
||||
text = t;
|
||||
} else {
|
||||
@@ -257,13 +257,13 @@ impl<'a> sqlx::FromRow<'a, sqlx::sqlite::SqliteRow> for Message {
|
||||
rfc724_mid: row.try_get::<String, _>("rfc724mid")?,
|
||||
in_reply_to: row.try_get::<Option<String>, _>("mime_in_reply_to")?,
|
||||
server_folder: row.try_get::<Option<String>, _>("server_folder")?,
|
||||
server_uid: row.try_get::<i64, _>("server_uid")? as u32,
|
||||
server_uid: row.try_get_unchecked::<i64, _>("server_uid")? as u32,
|
||||
chat_id: row.try_get("chat_id")?,
|
||||
from_id: row.try_get::<i64, _>("from_id")? as u32,
|
||||
to_id: row.try_get::<i64, _>("to_id")? as u32,
|
||||
timestamp_sort: row.try_get("timestamp")?,
|
||||
timestamp_sent: row.try_get("timestamp_sent")?,
|
||||
timestamp_rcvd: row.try_get("timestamp_rcvd")?,
|
||||
from_id: row.try_get::<i32, _>("from_id")? as u32,
|
||||
to_id: row.try_get::<i32, _>("to_id")? as u32,
|
||||
timestamp_sort: row.try_get_unchecked("timestamp")?,
|
||||
timestamp_sent: row.try_get_unchecked("timestamp_sent")?,
|
||||
timestamp_rcvd: row.try_get_unchecked("timestamp_rcvd")?,
|
||||
viewtype: row.try_get("type")?,
|
||||
state: row.try_get("state")?,
|
||||
is_dc_message: row.try_get("msgrmsg")?,
|
||||
@@ -272,9 +272,9 @@ impl<'a> sqlx::FromRow<'a, sqlx::sqlite::SqliteRow> for Message {
|
||||
.try_get::<String, _>("param")?
|
||||
.parse()
|
||||
.unwrap_or_default(),
|
||||
starred: row.try_get("starred")?,
|
||||
hidden: row.try_get("hidden")?,
|
||||
location_id: row.try_get::<i64, _>("location")? as u32,
|
||||
starred: row.try_get::<i32, _>("starred")? > 0,
|
||||
hidden: row.try_get::<i32, _>("hidden")? > 0,
|
||||
location_id: row.try_get_unchecked::<i64, _>("location")? as u32,
|
||||
chat_blocked: row
|
||||
.try_get::<Option<Blocked>, _>("blocked")?
|
||||
.unwrap_or_default(),
|
||||
@@ -864,9 +864,9 @@ pub async fn get_msg_info(context: &Context, msg_id: MsgId) -> Result<String, Er
|
||||
.fetch(&pool);
|
||||
|
||||
while let Some(row) = rows.next().await {
|
||||
let (contact_id, ts): (i32, i64) = row?;
|
||||
let (contact_id, ts): (i32, i32) = row?;
|
||||
|
||||
let fts = dc_timestamp_to_str(ts);
|
||||
let fts = dc_timestamp_to_str(ts as i64);
|
||||
ret += &format!("Read: {}", fts);
|
||||
|
||||
let name = Contact::load_from_db(context, contact_id as u32)
|
||||
|
||||
@@ -47,10 +47,10 @@ impl<'a> sqlx::FromRow<'a, sqlx::sqlite::SqliteRow> for Peerstate {
|
||||
|
||||
let mut res = Self::new(row.try_get("addr")?);
|
||||
|
||||
res.last_seen = row.try_get("last_seen")?;
|
||||
res.last_seen_autocrypt = row.try_get("last_seen_autocrypt")?;
|
||||
res.last_seen = row.try_get_unchecked("last_seen")?;
|
||||
res.last_seen_autocrypt = row.try_get_unchecked("last_seen_autocrypt")?;
|
||||
res.prefer_encrypt = row.try_get("prefer_encrypted")?;
|
||||
res.gossip_timestamp = row.try_get("gossip_timestamp")?;
|
||||
res.gossip_timestamp = row.try_get_unchecked("gossip_timestamp")?;
|
||||
|
||||
res.public_key_fingerprint = row
|
||||
.try_get::<Option<String>, _>("public_key_fingerprint")?
|
||||
|
||||
@@ -375,7 +375,7 @@ impl Sql {
|
||||
field.as_ref(),
|
||||
);
|
||||
|
||||
let res: i64 = self.query_value(&query, paramsx![value.as_ref()]).await?;
|
||||
let res: i32 = self.query_value(&query, paramsx![value.as_ref()]).await?;
|
||||
|
||||
Ok(res as u32)
|
||||
}
|
||||
@@ -395,7 +395,7 @@ impl Sql {
|
||||
field2.as_ref(),
|
||||
);
|
||||
|
||||
let res: i64 = self
|
||||
let res: i32 = self
|
||||
.query_value(query.as_ref(), paramsx![value, value2])
|
||||
.await?;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user