From 46253039df51958b079c1f7e65783283fff2302d Mon Sep 17 00:00:00 2001 From: Alexander Krotov Date: Tue, 28 Apr 2020 21:25:59 +0300 Subject: [PATCH] Return BTreeMap instead of HashMap from get_info() BTreeMap is sorted by keys when iterated, making it easier to find the required line. --- deltachat-ffi/src/lib.rs | 4 ++-- src/context.rs | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/deltachat-ffi/src/lib.rs b/deltachat-ffi/src/lib.rs index 47ebba5c6..1e75bd359 100644 --- a/deltachat-ffi/src/lib.rs +++ b/deltachat-ffi/src/lib.rs @@ -13,7 +13,7 @@ extern crate human_panic; extern crate num_traits; extern crate serde_json; -use std::collections::HashMap; +use std::collections::BTreeMap; use std::convert::TryInto; use std::ffi::CString; use std::fmt::Write; @@ -434,7 +434,7 @@ pub unsafe extern "C" fn dc_get_info(context: *mut dc_context_t) -> *mut libc::c } fn render_info( - info: HashMap<&'static str, String>, + info: BTreeMap<&'static str, String>, ) -> std::result::Result { let mut res = String::new(); for (key, value) in &info { diff --git a/src/context.rs b/src/context.rs index 0be974ae2..a69795da3 100644 --- a/src/context.rs +++ b/src/context.rs @@ -1,6 +1,6 @@ //! Context module -use std::collections::HashMap; +use std::collections::{BTreeMap, HashMap}; use std::ffi::OsString; use std::path::{Path, PathBuf}; use std::sync::{Arc, Condvar, Mutex, RwLock}; @@ -73,8 +73,8 @@ pub struct RunningState { /// actual keys and their values which will be present are not /// guaranteed. Calling [Context::get_info] also includes information /// about the context on top of the information here. -pub fn get_info() -> HashMap<&'static str, String> { - let mut res = HashMap::new(); +pub fn get_info() -> BTreeMap<&'static str, String> { + let mut res = BTreeMap::new(); res.insert("deltachat_core_version", format!("v{}", &*DC_VERSION_STR)); res.insert("sqlite_version", rusqlite::version().to_string()); res.insert("arch", (std::mem::size_of::() * 8).to_string()); @@ -225,7 +225,7 @@ impl Context { * UI chat/message related API ******************************************************************************/ - pub fn get_info(&self) -> HashMap<&'static str, String> { + pub fn get_info(&self) -> BTreeMap<&'static str, String> { let unset = "0"; let l = LoginParam::from_database(self, ""); let l2 = LoginParam::from_database(self, "configured_");