Struct imessage_database::tables::chat_handle::ChatToHandle
source · pub struct ChatToHandle { /* private fields */ }Expand description
Represents a single row in the chat_handle_join table.
Trait Implementations§
source§impl Cacheable for ChatToHandle
impl Cacheable for ChatToHandle
source§fn cache(db: &Connection) -> Result<HashMap<Self::K, Self::V>, TableError>
fn cache(db: &Connection) -> Result<HashMap<Self::K, Self::V>, TableError>
Generate a hashmap containing each chatroom’s ID pointing to a HashSet of participant handle IDs
Example:
use imessage_database::util::dirs::default_db_path;
use imessage_database::tables::table::{Cacheable, get_connection};
use imessage_database::tables::chat_handle::ChatToHandle;
let db_path = default_db_path();
let conn = get_connection(&db_path).unwrap();
let chatrooms = ChatToHandle::cache(&conn);type K = i32
type V = BTreeSet<i32, Global>
source§impl Deduplicate for ChatToHandle
impl Deduplicate for ChatToHandle
source§fn dedupe(duplicated_data: &HashMap<i32, Self::T>) -> HashMap<i32, i32>
fn dedupe(duplicated_data: &HashMap<i32, Self::T>) -> HashMap<i32, i32>
Given the initial set of duplicated chats, deduplicate them based on the participants
This returns a new hashmap that maps the real chat ID to a new deduplicated unique chat ID that represents a single chat for all of the same participants, even if they have multiple handles
type T = BTreeSet<i32, Global>
source§impl Diagnostic for ChatToHandle
impl Diagnostic for ChatToHandle
source§fn run_diagnostic(db: &Connection)
fn run_diagnostic(db: &Connection)
Emit diagnostic data for the Chat to Handle join table
Get the number of chats referenced in the messages table that do not exist in this join table:
Example:
use imessage_database::util::dirs::default_db_path;
use imessage_database::tables::table::{Diagnostic, get_connection};
use imessage_database::tables::chat_handle::ChatToHandle;
let db_path = default_db_path();
let conn = get_connection(&db_path).unwrap();
ChatToHandle::run_diagnostic(&conn);