mirror of
https://github.com/chatmail/core.git
synced 2026-05-16 21:36:30 +03:00
Improve documentation, mostly by hiding behind pub(crate)
This commit is contained in:
39
src/chat.rs
39
src/chat.rs
@@ -1114,7 +1114,7 @@ pub fn create_by_contact_id(context: &Context, contact_id: u32) -> Result<ChatId
|
|||||||
Ok(chat_id)
|
Ok(chat_id)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn update_saved_messages_icon(context: &Context) -> Result<(), Error> {
|
pub(crate) fn update_saved_messages_icon(context: &Context) -> Result<(), Error> {
|
||||||
// if there is no saved-messages chat, there is nothing to update. this is no error.
|
// if there is no saved-messages chat, there is nothing to update. this is no error.
|
||||||
if let Ok((chat_id, _)) = lookup_by_contact_id(context, DC_CONTACT_ID_SELF) {
|
if let Ok((chat_id, _)) = lookup_by_contact_id(context, DC_CONTACT_ID_SELF) {
|
||||||
let icon = include_bytes!("../assets/icon-saved-messages.png");
|
let icon = include_bytes!("../assets/icon-saved-messages.png");
|
||||||
@@ -1128,7 +1128,7 @@ pub fn update_saved_messages_icon(context: &Context) -> Result<(), Error> {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn update_device_icon(context: &Context) -> Result<(), Error> {
|
pub(crate) fn update_device_icon(context: &Context) -> Result<(), Error> {
|
||||||
// if there is no device-chat, there is nothing to update. this is no error.
|
// if there is no device-chat, there is nothing to update. this is no error.
|
||||||
if let Ok((chat_id, _)) = lookup_by_contact_id(context, DC_CONTACT_ID_DEVICE) {
|
if let Ok((chat_id, _)) = lookup_by_contact_id(context, DC_CONTACT_ID_DEVICE) {
|
||||||
let icon = include_bytes!("../assets/icon-device.png");
|
let icon = include_bytes!("../assets/icon-device.png");
|
||||||
@@ -1162,13 +1162,13 @@ fn update_special_chat_name(
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn update_special_chat_names(context: &Context) -> Result<(), Error> {
|
pub(crate) fn update_special_chat_names(context: &Context) -> Result<(), Error> {
|
||||||
update_special_chat_name(context, DC_CONTACT_ID_DEVICE, StockMessage::DeviceMessages)?;
|
update_special_chat_name(context, DC_CONTACT_ID_DEVICE, StockMessage::DeviceMessages)?;
|
||||||
update_special_chat_name(context, DC_CONTACT_ID_SELF, StockMessage::SavedMessages)?;
|
update_special_chat_name(context, DC_CONTACT_ID_SELF, StockMessage::SavedMessages)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn create_or_lookup_by_contact_id(
|
pub(crate) fn create_or_lookup_by_contact_id(
|
||||||
context: &Context,
|
context: &Context,
|
||||||
contact_id: u32,
|
contact_id: u32,
|
||||||
create_blocked: Blocked,
|
create_blocked: Blocked,
|
||||||
@@ -1219,7 +1219,7 @@ pub fn create_or_lookup_by_contact_id(
|
|||||||
lookup_by_contact_id(context, contact_id)
|
lookup_by_contact_id(context, contact_id)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn lookup_by_contact_id(
|
pub(crate) fn lookup_by_contact_id(
|
||||||
context: &Context,
|
context: &Context,
|
||||||
contact_id: u32,
|
contact_id: u32,
|
||||||
) -> Result<(ChatId, Blocked), Error> {
|
) -> Result<(ChatId, Blocked), Error> {
|
||||||
@@ -1273,7 +1273,7 @@ pub fn prepare_msg<'a>(
|
|||||||
Ok(msg_id)
|
Ok(msg_id)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn msgtype_has_file(msgtype: Viewtype) -> bool {
|
pub(crate) fn msgtype_has_file(msgtype: Viewtype) -> bool {
|
||||||
match msgtype {
|
match msgtype {
|
||||||
Viewtype::Unknown => false,
|
Viewtype::Unknown => false,
|
||||||
Viewtype::Text => false,
|
Viewtype::Text => false,
|
||||||
@@ -1750,7 +1750,11 @@ pub fn create_group_chat(
|
|||||||
Ok(chat_id)
|
Ok(chat_id)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn add_to_chat_contacts_table(context: &Context, chat_id: ChatId, contact_id: u32) -> bool {
|
pub(crate) fn add_to_chat_contacts_table(
|
||||||
|
context: &Context,
|
||||||
|
chat_id: ChatId,
|
||||||
|
contact_id: u32,
|
||||||
|
) -> bool {
|
||||||
// add a contact to a chat; the function does not check the type or if any of the record exist or are already
|
// add a contact to a chat; the function does not check the type or if any of the record exist or are already
|
||||||
// added to the chat!
|
// added to the chat!
|
||||||
sql::execute(
|
sql::execute(
|
||||||
@@ -1762,7 +1766,7 @@ pub fn add_to_chat_contacts_table(context: &Context, chat_id: ChatId, contact_id
|
|||||||
.is_ok()
|
.is_ok()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn remove_from_chat_contacts_table(
|
pub(crate) fn remove_from_chat_contacts_table(
|
||||||
context: &Context,
|
context: &Context,
|
||||||
chat_id: ChatId,
|
chat_id: ChatId,
|
||||||
contact_id: u32,
|
contact_id: u32,
|
||||||
@@ -1898,7 +1902,7 @@ fn real_group_exists(context: &Context, chat_id: ChatId) -> bool {
|
|||||||
.unwrap_or_default()
|
.unwrap_or_default()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn reset_gossiped_timestamp(context: &Context, chat_id: ChatId) -> Result<(), Error> {
|
pub(crate) fn reset_gossiped_timestamp(context: &Context, chat_id: ChatId) -> Result<(), Error> {
|
||||||
set_gossiped_timestamp(context, chat_id, 0)
|
set_gossiped_timestamp(context, chat_id, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1915,7 +1919,7 @@ pub fn get_gossiped_timestamp(context: &Context, chat_id: ChatId) -> i64 {
|
|||||||
.unwrap_or_default()
|
.unwrap_or_default()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_gossiped_timestamp(
|
pub(crate) fn set_gossiped_timestamp(
|
||||||
context: &Context,
|
context: &Context,
|
||||||
chat_id: ChatId,
|
chat_id: ChatId,
|
||||||
timestamp: i64,
|
timestamp: i64,
|
||||||
@@ -1935,7 +1939,7 @@ pub fn set_gossiped_timestamp(
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn shall_attach_selfavatar(context: &Context, chat_id: ChatId) -> Result<bool, Error> {
|
pub(crate) fn shall_attach_selfavatar(context: &Context, chat_id: ChatId) -> Result<bool, Error> {
|
||||||
// versions before 12/2019 already allowed to set selfavatar, however, it was never sent to others.
|
// versions before 12/2019 already allowed to set selfavatar, however, it was never sent to others.
|
||||||
// to avoid sending out previously set selfavatars unexpectedly we added this additional check.
|
// to avoid sending out previously set selfavatars unexpectedly we added this additional check.
|
||||||
// it can be removed after some time.
|
// it can be removed after some time.
|
||||||
@@ -2117,7 +2121,10 @@ fn set_group_explicitly_left(context: &Context, grpid: impl AsRef<str>) -> Resul
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn is_group_explicitly_left(context: &Context, grpid: impl AsRef<str>) -> Result<bool, Error> {
|
pub(crate) fn is_group_explicitly_left(
|
||||||
|
context: &Context,
|
||||||
|
grpid: impl AsRef<str>,
|
||||||
|
) -> Result<bool, Error> {
|
||||||
context
|
context
|
||||||
.sql
|
.sql
|
||||||
.exists(
|
.exists(
|
||||||
@@ -2339,7 +2346,7 @@ pub fn forward_msgs(context: &Context, msg_ids: &[MsgId], chat_id: ChatId) -> Re
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_chat_contact_cnt(context: &Context, chat_id: ChatId) -> usize {
|
pub(crate) fn get_chat_contact_cnt(context: &Context, chat_id: ChatId) -> usize {
|
||||||
context
|
context
|
||||||
.sql
|
.sql
|
||||||
.query_get_value::<_, isize>(
|
.query_get_value::<_, isize>(
|
||||||
@@ -2350,7 +2357,7 @@ pub fn get_chat_contact_cnt(context: &Context, chat_id: ChatId) -> usize {
|
|||||||
.unwrap_or_default() as usize
|
.unwrap_or_default() as usize
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_chat_cnt(context: &Context) -> usize {
|
pub(crate) fn get_chat_cnt(context: &Context) -> usize {
|
||||||
if context.sql.is_open() {
|
if context.sql.is_open() {
|
||||||
/* no database, no chats - this is no error (needed eg. for information) */
|
/* no database, no chats - this is no error (needed eg. for information) */
|
||||||
context
|
context
|
||||||
@@ -2465,7 +2472,7 @@ pub fn was_device_msg_ever_added(context: &Context, label: &str) -> Result<bool,
|
|||||||
// no wrong information are shown in the device chat
|
// no wrong information are shown in the device chat
|
||||||
// - deletion in `devmsglabels` makes sure,
|
// - deletion in `devmsglabels` makes sure,
|
||||||
// deleted messages are resetted and useful messages can be added again
|
// deleted messages are resetted and useful messages can be added again
|
||||||
pub fn delete_and_reset_all_device_msgs(context: &Context) -> Result<(), Error> {
|
pub(crate) fn delete_and_reset_all_device_msgs(context: &Context) -> Result<(), Error> {
|
||||||
context.sql.execute(
|
context.sql.execute(
|
||||||
"DELETE FROM msgs WHERE from_id=?;",
|
"DELETE FROM msgs WHERE from_id=?;",
|
||||||
params![DC_CONTACT_ID_DEVICE],
|
params![DC_CONTACT_ID_DEVICE],
|
||||||
@@ -2479,7 +2486,7 @@ pub fn delete_and_reset_all_device_msgs(context: &Context) -> Result<(), Error>
|
|||||||
/// Adds an informational message to chat.
|
/// Adds an informational message to chat.
|
||||||
///
|
///
|
||||||
/// For example, it can be a message showing that a member was added to a group.
|
/// For example, it can be a message showing that a member was added to a group.
|
||||||
pub fn add_info_msg(context: &Context, chat_id: ChatId, text: impl AsRef<str>) {
|
pub(crate) fn add_info_msg(context: &Context, chat_id: ChatId, text: impl AsRef<str>) {
|
||||||
let rfc724_mid = dc_create_outgoing_rfc724_mid(None, "@device");
|
let rfc724_mid = dc_create_outgoing_rfc724_mid(None, "@device");
|
||||||
|
|
||||||
if context.sql.execute(
|
if context.sql.execute(
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ impl Origin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
|
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
|
||||||
pub enum Modifier {
|
pub(crate) enum Modifier {
|
||||||
None,
|
None,
|
||||||
Modified,
|
Modified,
|
||||||
Created,
|
Created,
|
||||||
@@ -324,7 +324,7 @@ impl Contact {
|
|||||||
/// Depending on the origin, both, "row_name" and "row_authname" are updated from "name".
|
/// Depending on the origin, both, "row_name" and "row_authname" are updated from "name".
|
||||||
///
|
///
|
||||||
/// Returns the contact_id and a `Modifier` value indicating if a modification occured.
|
/// Returns the contact_id and a `Modifier` value indicating if a modification occured.
|
||||||
pub fn add_or_lookup(
|
pub(crate) fn add_or_lookup(
|
||||||
context: &Context,
|
context: &Context,
|
||||||
name: impl AsRef<str>,
|
name: impl AsRef<str>,
|
||||||
addr: impl AsRef<str>,
|
addr: impl AsRef<str>,
|
||||||
@@ -1019,7 +1019,7 @@ fn set_block_contact(context: &Context, contact_id: u32, new_blocking: bool) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_profile_image(
|
pub(crate) fn set_profile_image(
|
||||||
context: &Context,
|
context: &Context,
|
||||||
contact_id: u32,
|
contact_id: u32,
|
||||||
profile_image: &AvatarAction,
|
profile_image: &AvatarAction,
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ pub struct Context {
|
|||||||
cb: Box<ContextCallback>,
|
cb: Box<ContextCallback>,
|
||||||
pub os_name: Option<String>,
|
pub os_name: Option<String>,
|
||||||
pub cmdline_sel_chat_id: Arc<RwLock<ChatId>>,
|
pub cmdline_sel_chat_id: Arc<RwLock<ChatId>>,
|
||||||
pub bob: Arc<RwLock<BobStatus>>,
|
pub(crate) bob: Arc<RwLock<BobStatus>>,
|
||||||
pub last_smeared_timestamp: RwLock<i64>,
|
pub last_smeared_timestamp: RwLock<i64>,
|
||||||
pub running_state: Arc<RwLock<RunningState>>,
|
pub running_state: Arc<RwLock<RunningState>>,
|
||||||
/// Mutex to avoid generating the key for the user more than once.
|
/// Mutex to avoid generating the key for the user more than once.
|
||||||
@@ -478,14 +478,14 @@ impl Default for RunningState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Default)]
|
#[derive(Debug, Default)]
|
||||||
pub struct BobStatus {
|
pub(crate) struct BobStatus {
|
||||||
pub expects: i32,
|
pub expects: i32,
|
||||||
pub status: i32,
|
pub status: i32,
|
||||||
pub qr_scan: Option<Lot>,
|
pub qr_scan: Option<Lot>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, PartialEq)]
|
#[derive(Debug, PartialEq)]
|
||||||
pub enum PerformJobsNeeded {
|
pub(crate) enum PerformJobsNeeded {
|
||||||
Not,
|
Not,
|
||||||
AtOnce,
|
AtOnce,
|
||||||
AvoidDos,
|
AvoidDos,
|
||||||
@@ -502,7 +502,7 @@ pub struct SmtpState {
|
|||||||
pub idle: bool,
|
pub idle: bool,
|
||||||
pub suspended: bool,
|
pub suspended: bool,
|
||||||
pub doing_jobs: bool,
|
pub doing_jobs: bool,
|
||||||
pub perform_jobs_needed: PerformJobsNeeded,
|
pub(crate) perform_jobs_needed: PerformJobsNeeded,
|
||||||
pub probe_network: bool,
|
pub probe_network: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ pub(crate) mod events;
|
|||||||
pub use events::*;
|
pub use events::*;
|
||||||
|
|
||||||
mod aheader;
|
mod aheader;
|
||||||
pub mod blob;
|
mod blob;
|
||||||
pub mod chat;
|
pub mod chat;
|
||||||
pub mod chatlist;
|
pub mod chatlist;
|
||||||
pub mod config;
|
pub mod config;
|
||||||
@@ -42,7 +42,7 @@ pub mod imex;
|
|||||||
pub mod job;
|
pub mod job;
|
||||||
mod job_thread;
|
mod job_thread;
|
||||||
pub mod key;
|
pub mod key;
|
||||||
pub mod keyring;
|
mod keyring;
|
||||||
pub mod location;
|
pub mod location;
|
||||||
mod login_param;
|
mod login_param;
|
||||||
pub mod lot;
|
pub mod lot;
|
||||||
|
|||||||
@@ -364,6 +364,7 @@ fn is_marker(txt: &str) -> bool {
|
|||||||
txt.len() == 1 && !txt.starts_with(' ')
|
txt.len() == 1 && !txt.starts_with(' ')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Deletes all locations from the database.
|
||||||
pub fn delete_all(context: &Context) -> Result<(), Error> {
|
pub fn delete_all(context: &Context) -> Result<(), Error> {
|
||||||
sql::execute(context, &context.sql, "DELETE FROM locations;", params![])?;
|
sql::execute(context, &context.sql, "DELETE FROM locations;", params![])?;
|
||||||
context.call_cb(Event::LocationChanged(None));
|
context.call_cb(Event::LocationChanged(None));
|
||||||
@@ -547,7 +548,7 @@ pub fn save(
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
pub fn JobMaybeSendLocations(context: &Context, _job: &Job) -> job::Status {
|
pub(crate) fn JobMaybeSendLocations(context: &Context, _job: &Job) -> job::Status {
|
||||||
let now = time();
|
let now = time();
|
||||||
let mut continue_streaming = false;
|
let mut continue_streaming = false;
|
||||||
info!(
|
info!(
|
||||||
@@ -638,7 +639,7 @@ pub fn JobMaybeSendLocations(context: &Context, _job: &Job) -> job::Status {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
pub fn JobMaybeSendLocationsEnded(context: &Context, job: &mut Job) -> job::Status {
|
pub(crate) fn JobMaybeSendLocationsEnded(context: &Context, job: &mut Job) -> job::Status {
|
||||||
// this function is called when location-streaming _might_ have ended for a chat.
|
// this function is called when location-streaming _might_ have ended for a chat.
|
||||||
// the function checks, if location-streaming is really ended;
|
// the function checks, if location-streaming is really ended;
|
||||||
// if so, a device-message is added if not yet done.
|
// if so, a device-message is added if not yet done.
|
||||||
|
|||||||
@@ -161,7 +161,7 @@ pub struct InvalidMsgId;
|
|||||||
Deserialize,
|
Deserialize,
|
||||||
)]
|
)]
|
||||||
#[repr(u8)]
|
#[repr(u8)]
|
||||||
pub enum MessengerMessage {
|
pub(crate) enum MessengerMessage {
|
||||||
No = 0,
|
No = 0,
|
||||||
Yes = 1,
|
Yes = 1,
|
||||||
|
|
||||||
|
|||||||
@@ -46,26 +46,17 @@ pub struct MimeMessage {
|
|||||||
pub is_system_message: SystemMessage,
|
pub is_system_message: SystemMessage,
|
||||||
pub location_kml: Option<location::Kml>,
|
pub location_kml: Option<location::Kml>,
|
||||||
pub message_kml: Option<location::Kml>,
|
pub message_kml: Option<location::Kml>,
|
||||||
pub user_avatar: Option<AvatarAction>,
|
pub(crate) user_avatar: Option<AvatarAction>,
|
||||||
pub group_avatar: Option<AvatarAction>,
|
pub(crate) group_avatar: Option<AvatarAction>,
|
||||||
pub(crate) reports: Vec<Report>,
|
pub(crate) reports: Vec<Report>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, PartialEq)]
|
#[derive(Debug, PartialEq)]
|
||||||
pub enum AvatarAction {
|
pub(crate) enum AvatarAction {
|
||||||
Delete,
|
Delete,
|
||||||
Change(String),
|
Change(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl AvatarAction {
|
|
||||||
pub fn is_change(&self) -> bool {
|
|
||||||
match self {
|
|
||||||
AvatarAction::Delete => false,
|
|
||||||
AvatarAction::Change(_) => true,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Display, Clone, Copy, PartialEq, Eq, FromPrimitive, ToPrimitive, ToSql, FromSql)]
|
#[derive(Debug, Display, Clone, Copy, PartialEq, Eq, FromPrimitive, ToPrimitive, ToSql, FromSql)]
|
||||||
#[repr(i32)]
|
#[repr(i32)]
|
||||||
pub enum SystemMessage {
|
pub enum SystemMessage {
|
||||||
@@ -1094,6 +1085,15 @@ mod tests {
|
|||||||
use super::*;
|
use super::*;
|
||||||
use crate::test_utils::*;
|
use crate::test_utils::*;
|
||||||
|
|
||||||
|
impl AvatarAction {
|
||||||
|
pub fn is_change(&self) -> bool {
|
||||||
|
match self {
|
||||||
|
AvatarAction::Delete => false,
|
||||||
|
AvatarAction::Change(_) => true,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_dc_mimeparser_crash() {
|
fn test_dc_mimeparser_crash() {
|
||||||
let context = dummy_context();
|
let context = dummy_context();
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
//! [Provider database](https://providers.delta.chat/) module
|
||||||
|
|
||||||
mod data;
|
mod data;
|
||||||
|
|
||||||
use crate::dc_tools::EmailAddress;
|
use crate::dc_tools::EmailAddress;
|
||||||
|
|||||||
Reference in New Issue
Block a user