From d0c2893d142ee90a33f3aeab0b6af026112b73b4 Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Tue, 10 Jan 2023 17:35:40 +0100
Subject: [PATCH] RUST: Use forbit unsafe for where we can to enforce the use
 of unsafe code only in the c compat crate

---
 src/rust/amadeus-next/amadeus/src/main.rs    |  2 ++
 src/rust/amadeus-next/amalib/src/lib.rs      |  2 ++
 src/rust/amadeus-next/commons/src/lib.rs     |  2 ++
 src/rust/amadeus-next/lkt-rs/src/main.rs     | 14 +++++++-------
 src/rust/liblektor-rs/kurisu_api/src/lib.rs  |  2 ++
 src/rust/liblektor-rs/lektor_db/src/lib.rs   |  2 ++
 src/rust/liblektor-rs/lektor_repo/src/lib.rs |  2 ++
 7 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/src/rust/amadeus-next/amadeus/src/main.rs b/src/rust/amadeus-next/amadeus/src/main.rs
index f328e4d9..e3bcc0c4 100644
--- a/src/rust/amadeus-next/amadeus/src/main.rs
+++ b/src/rust/amadeus-next/amadeus/src/main.rs
@@ -1 +1,3 @@
+#![forbid(unsafe_code)]
+
 fn main() {}
diff --git a/src/rust/amadeus-next/amalib/src/lib.rs b/src/rust/amadeus-next/amalib/src/lib.rs
index 00d2f9fe..8ee7b9eb 100644
--- a/src/rust/amadeus-next/amalib/src/lib.rs
+++ b/src/rust/amadeus-next/amalib/src/lib.rs
@@ -1,3 +1,5 @@
+#![forbid(unsafe_code)]
+
 //! The base library used for lektor's clients. It is composed of elements to
 //! communicate with the lektord server and elements to store and organise the
 //! queried informations.
diff --git a/src/rust/amadeus-next/commons/src/lib.rs b/src/rust/amadeus-next/commons/src/lib.rs
index 7cd44cd0..597e4934 100644
--- a/src/rust/amadeus-next/commons/src/lib.rs
+++ b/src/rust/amadeus-next/commons/src/lib.rs
@@ -1,3 +1,5 @@
+#![forbid(unsafe_code)]
+
 mod asserts;
 mod error;
 mod macros;
diff --git a/src/rust/amadeus-next/lkt-rs/src/main.rs b/src/rust/amadeus-next/lkt-rs/src/main.rs
index eacf33cc..5ec2a228 100644
--- a/src/rust/amadeus-next/lkt-rs/src/main.rs
+++ b/src/rust/amadeus-next/lkt-rs/src/main.rs
@@ -1,3 +1,5 @@
+#![forbid(unsafe_code)]
+
 mod args;
 mod config;
 mod parsers;
@@ -35,7 +37,7 @@ macro_rules! send {
     ($conn: expr => $query: expr ; $expect: pat_param => $action: block) => {
         match $conn.send($query).await.expect("failed to execute command") {
             $expect => $action,
-            _ => panic!("invalid response type for command"),
+            _ => unreachable!("invalid response type for command"),
         }
     };
 
@@ -96,15 +98,13 @@ async fn handle_cmd_playlist(
             send!(conn => LektorQuery::RemoveFromPlaylist(name, query); ok)
         }
         LktPlaylistCommand::List => {
-            send!(conn => LektorQuery::ListAllPlaylists
-                ; LektorResponse::PlaylistSet(playlists) => {
-                    playlists.into_iter().for_each(|plt| println!("{plt}"))
+            send!(conn => LektorQuery::ListAllPlaylists; LektorResponse::PlaylistSet(playlists) => {
+                playlists.into_iter().for_each(|plt| println!("{plt}"))
             })
         }
         LktPlaylistCommand::ListContent { name } => {
-            send!(conn => LektorQuery::ListPlaylist(name)
-                ; LektorResponse::KaraSet(karas) => {
-                    karas.into_iter().for_each(|kara| println!("{kara}"))
+            send!(conn => LektorQuery::ListPlaylist(name); LektorResponse::KaraSet(karas) => {
+                karas.into_iter().for_each(|kara| println!("{kara}"))
             })
         }
     }
diff --git a/src/rust/liblektor-rs/kurisu_api/src/lib.rs b/src/rust/liblektor-rs/kurisu_api/src/lib.rs
index a3a6d96c..548de523 100644
--- a/src/rust/liblektor-rs/kurisu_api/src/lib.rs
+++ b/src/rust/liblektor-rs/kurisu_api/src/lib.rs
@@ -1 +1,3 @@
+#![forbid(unsafe_code)]
+
 pub mod v1;
diff --git a/src/rust/liblektor-rs/lektor_db/src/lib.rs b/src/rust/liblektor-rs/lektor_db/src/lib.rs
index 4043328d..785bdea0 100644
--- a/src/rust/liblektor-rs/lektor_db/src/lib.rs
+++ b/src/rust/liblektor-rs/lektor_db/src/lib.rs
@@ -1,3 +1,5 @@
+#![forbid(unsafe_code)]
+
 //! Database implementation in rust for lektor.
 
 pub mod connexion;
diff --git a/src/rust/liblektor-rs/lektor_repo/src/lib.rs b/src/rust/liblektor-rs/lektor_repo/src/lib.rs
index ffd59cd6..f99447c0 100644
--- a/src/rust/liblektor-rs/lektor_repo/src/lib.rs
+++ b/src/rust/liblektor-rs/lektor_repo/src/lib.rs
@@ -1,3 +1,5 @@
+#![forbid(unsafe_code)]
+
 //! The crate responsible of downloading karas from kurisu.
 
 use lektor_c_compat::rs::*;
-- 
GitLab