use std::sync::{Arc, Mutex}; use rusqlite::{Connection, Error}; pub fn initialise_database_tables(connection: &Arc>) -> Result<(), Error> { connection.lock() .unwrap() .execute_batch( " BEGIN; CREATE TABLE IF NOT EXISTS configuration ( id TEXT PRIMARY KEY, initialisation_code VARCHAR ); CREATE TABLE IF NOT EXISTS \"user\" ( id TEXT PRIMARY KEY, username VARCHAR NOT NULL, encrypted_password VARCHAR NOT NULL ); CREATE TABLE IF NOT EXISTS library_item ( id TEXT PRIMARY KEY, name VARCHAR NOT NULL, type INTEGER NOT NULL, parent_folder_id TEXT NULL, FOREIGN KEY (parent_folder_id) REFERENCES library_item (id) ); COMMIT; " )?; Ok(()) }