From 2977ceb459343134c5ba7ecad4951a6691255c37 Mon Sep 17 00:00:00 2001 From: Alexander Krotov Date: Sun, 16 Feb 2020 17:12:46 +0300 Subject: [PATCH] Turn deltachat::configure functions into Context methods Now configure module is no longer public. Users should call Context.configure() and Context.is_configured() methods. Configure module is completely hidden from documentation unless --document-private-items option is specified. --- deltachat-ffi/src/lib.rs | 6 ++---- examples/repl/main.rs | 3 +-- examples/simple.rs | 3 +-- src/configure/mod.rs | 26 ++++++++++++++------------ src/imex.rs | 3 +-- src/lib.rs | 2 +- 6 files changed, 20 insertions(+), 23 deletions(-) diff --git a/deltachat-ffi/src/lib.rs b/deltachat-ffi/src/lib.rs index da6913433..53d6d59bc 100644 --- a/deltachat-ffi/src/lib.rs +++ b/deltachat-ffi/src/lib.rs @@ -488,9 +488,7 @@ pub unsafe extern "C" fn dc_configure(context: *mut dc_context_t) { return; } let ffi_context = &*context; - ffi_context - .with_inner(|ctx| configure::configure(ctx)) - .unwrap_or(()) + ffi_context.with_inner(|ctx| ctx.configure()).unwrap_or(()) } #[no_mangle] @@ -501,7 +499,7 @@ pub unsafe extern "C" fn dc_is_configured(context: *mut dc_context_t) -> libc::c } let ffi_context = &*context; ffi_context - .with_inner(|ctx| configure::dc_is_configured(ctx) as libc::c_int) + .with_inner(|ctx| ctx.is_configured() as libc::c_int) .unwrap_or(0) } diff --git a/examples/repl/main.rs b/examples/repl/main.rs index 87a0a9397..c1873829c 100644 --- a/examples/repl/main.rs +++ b/examples/repl/main.rs @@ -22,7 +22,6 @@ use std::sync::{Arc, Mutex, RwLock}; use deltachat::chat::ChatId; use deltachat::config; -use deltachat::configure::*; use deltachat::context::*; use deltachat::job::*; use deltachat::oauth2::*; @@ -463,7 +462,7 @@ fn handle_cmd(line: &str, ctx: Arc>) -> Result { start_threads(ctx.clone()); - configure(&ctx.read().unwrap()); + ctx.read().unwrap().configure(); } "oauth2" => { if let Some(addr) = ctx.read().unwrap().get_config(config::Config::Addr) { diff --git a/examples/simple.rs b/examples/simple.rs index 4eea43b9b..9ab89ed6d 100644 --- a/examples/simple.rs +++ b/examples/simple.rs @@ -7,7 +7,6 @@ use tempfile::tempdir; use deltachat::chat; use deltachat::chatlist::*; use deltachat::config; -use deltachat::configure::*; use deltachat::contact::*; use deltachat::context::*; use deltachat::job::{ @@ -77,7 +76,7 @@ fn main() { ctx.set_config(config::Config::Addr, Some("d@testrun.org")) .unwrap(); ctx.set_config(config::Config::MailPw, Some(&pw)).unwrap(); - configure(&ctx); + ctx.configure(); thread::sleep(duration); diff --git a/src/configure/mod.rs b/src/configure/mod.rs index 68755ba8b..c5240e551 100644 --- a/src/configure/mod.rs +++ b/src/configure/mod.rs @@ -32,26 +32,28 @@ macro_rules! progress { }; } -// connect -pub fn configure(context: &Context) { - if context.has_ongoing() { - warn!(context, "There is already another ongoing process running.",); - return; +impl Context { + /// Starts a configuration job. + pub fn configure(&self) { + if self.has_ongoing() { + warn!(self, "There is already another ongoing process running.",); + return; + } + job_kill_action(self, job::Action::ConfigureImap); + job_add(self, job::Action::ConfigureImap, 0, Params::new(), 0); } - job_kill_action(context, job::Action::ConfigureImap); - job_add(context, job::Action::ConfigureImap, 0, Params::new(), 0); -} -/// Check if the context is already configured. -pub fn dc_is_configured(context: &Context) -> bool { - context.sql.get_raw_config_bool(context, "configured") + /// Checks if the context is already configured. + pub fn is_configured(&self) -> bool { + self.sql.get_raw_config_bool(self, "configured") + } } /******************************************************************************* * Configure JOB ******************************************************************************/ #[allow(non_snake_case, unused_must_use, clippy::cognitive_complexity)] -pub fn JobConfigureImap(context: &Context) -> job::Status { +pub(crate) fn JobConfigureImap(context: &Context) -> job::Status { if !context.sql.is_open() { error!(context, "Cannot configure, database not opened.",); progress!(context, 0); diff --git a/src/imex.rs b/src/imex.rs index c261b5bd4..ce603961e 100644 --- a/src/imex.rs +++ b/src/imex.rs @@ -10,7 +10,6 @@ use crate::blob::BlobObject; use crate::chat; use crate::chat::delete_and_reset_all_device_msgs; use crate::config::Config; -use crate::configure::*; use crate::constants::*; use crate::context::Context; use crate::dc_tools::*; @@ -414,7 +413,7 @@ fn import_backup(context: &Context, backup_to_import: impl AsRef) -> Resul ); ensure!( - !dc_is_configured(context), + !context.is_configured(), "Cannot import backups to accounts in use." ); context.sql.close(&context); diff --git a/src/lib.rs b/src/lib.rs index 1f6edf406..09a13b44e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -31,7 +31,7 @@ pub mod blob; pub mod chat; pub mod chatlist; pub mod config; -pub mod configure; +mod configure; pub mod constants; pub mod contact; pub mod context;