This library represents interfaces used to interact with the iMessage Database.
This library is available on crates.io.
Documentation is available on docs.rs.
```rust use imessagedatabase::{ error::table::TableError, tables::{ messages::Message, table::{getconnection, Table}, }, util::dirs::defaultdbpath, };
fn itermessages() -> Result<(), TableError> { /// Create a read-only connection to the iMessage database let db = getconnection(&defaultdbpath()).unwrap();
/// Create SQL statement
let mut statement = Message::get(&db);
/// Execute statement
let messages = statement
.query_map([], |row| Ok(Message::from_row(row)))
.unwrap();
/// Iterate over each row
for message in messages {
let mut msg = Message::extract(message)?;
/// Parse message body if it was sent from MacOS 13.0 or newer
msg.gen_text(&db);
/// Emit debug info for each message
println!("{:?}", msg)
}
Ok(())
} ```