wire-desktop-core 0.1.2

Wire desktop (Electron) messenger reader — interprets the Chromium IndexedDB-over-LevelDB Dexie object stores into typed Wire records (conversations, events, users, clients) and a timeline; surfaces client-side-encrypted message payloads as unrecoverable rather than fabricating plaintext
Documentation
//! Conversation-record interpretation (object store `conversations`).

mod common;

use common::{obj, record, s};
use wire_desktop_core::{interpret_records, WireRecordKind};

#[test]
fn extracts_conversation_id_and_name() {
    let recs = vec![record(
        "conversations",
        "conv-1",
        obj(vec![
            ("id", s("conv-1")),
            ("name", s("Incident Ops")),
            ("type", s("group")),
        ]),
    )];

    let store = interpret_records(&recs);
    let conv = store
        .records
        .iter()
        .find(|r| r.kind == WireRecordKind::Conversation)
        .expect("a conversation record");

    assert_eq!(conv.id.as_deref(), Some("conv-1"));
    assert_eq!(conv.conversation.as_deref(), Some("conv-1"));
    assert_eq!(conv.name.as_deref(), Some("Incident Ops"));
}