diff --git a/src/meta_plugin/magic.rs b/src/meta_plugin/magic.rs index 09aaa9b..65dc4a9 100644 --- a/src/meta_plugin/magic.rs +++ b/src/meta_plugin/magic.rs @@ -55,7 +55,8 @@ impl MagicFileMetaPlugin { fn save_all_magic_metadata(&mut self) -> Result<()> { if let (Some(conn), Some(item_id)) = (self.conn, self.item_id) { - let conn = unsafe { &*conn }; + // Convert raw pointer back to reference (unsafe) + let conn_ref = unsafe { &*conn }; // Save file type if let Ok(file_type) = self.get_magic_result(CookieFlags::empty()) { @@ -64,7 +65,7 @@ impl MagicFileMetaPlugin { name: "magic_file_type".to_string(), value: file_type, }; - crate::db::store_meta(conn, meta)?; + let _ = crate::db::store_meta(conn_ref, meta); } // Save MIME type @@ -74,7 +75,7 @@ impl MagicFileMetaPlugin { name: "magic_mime_type".to_string(), value: mime_type, }; - crate::db::store_meta(conn, meta)?; + let _ = crate::db::store_meta(conn_ref, meta); } // Save MIME encoding @@ -84,7 +85,7 @@ impl MagicFileMetaPlugin { name: "magic_mime_encoding".to_string(), value: mime_encoding, }; - crate::db::store_meta(conn, meta)?; + let _ = crate::db::store_meta(conn_ref, meta); } self.is_saved = true; @@ -100,7 +101,8 @@ impl MetaPlugin for MagicFileMetaPlugin { fn initialize(&mut self, conn: &Connection, item_id: i64) -> Result<()> { self.item_id = Some(item_id); - self.conn = Some(conn as *const Connection as *mut Connection); + // Store raw pointer to connection - unsafe but necessary for this design + self.conn = Some(conn as *const _ as *mut Connection); // Initialize magic cookie let cookie = Cookie::open(CookieFlags::empty()) @@ -116,10 +118,10 @@ impl MetaPlugin for MagicFileMetaPlugin { // Save all magic metadata if not already saved if !self.is_saved { if let Err(e) = self.save_all_magic_metadata() { - return Err(io::Error::new(io::ErrorKind::Other, format!("Failed to save magic metadata: {}", e))); + eprintln!("Warning: Failed to save magic metadata: {}", e); } } - // Return empty string since we save during finalize + // Return empty string since we save during finalize or update Ok("".to_string()) } @@ -132,10 +134,8 @@ impl MetaPlugin for MagicFileMetaPlugin { // Check if we've reached our buffer limit and save if so if self.buffer.len() >= self.max_buffer_size && !self.is_saved { - if let (Some(_conn), Some(_item_id)) = (self.conn, self.item_id) { - if let Err(e) = self.save_all_magic_metadata() { - eprintln!("Warning: Failed to save magic metadata early: {}", e); - } + if let Err(e) = self.save_all_magic_metadata() { + eprintln!("Warning: Failed to save magic metadata early: {}", e); } } }