From ec2fffc12f6862ed0ca1c9061202253f9d216f66 Mon Sep 17 00:00:00 2001
From: Ryze <ryze@noreply.code.thishorsie.rocks>
Date: Fri, 20 Sep 2024 22:27:44 +0300
Subject: [PATCH] Make assert messages more readable

Use lib.assertOneOf and lib.assertMsg
---
 packages/compileOptimized/C.nix    | 11 ++++++++++-
 packages/compileOptimized/Rust.nix | 14 +++++++-------
 2 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/packages/compileOptimized/C.nix b/packages/compileOptimized/C.nix
index f156354..045412d 100644
--- a/packages/compileOptimized/C.nix
+++ b/packages/compileOptimized/C.nix
@@ -9,7 +9,16 @@
 
 pkg:
 
-assert builtins.elem optimizationLevel [ "O0" "O1" "O2" "O3" "Ofast" "Os" "Oz" "Og" ];
+assert lib.assertOneOf "optimizationLevel" optimizationLevel [
+	"O0"
+	"O1"
+	"O2"
+	"O3"
+	"Ofast"
+	"Os"
+	"Oz"
+	"Og"
+];
 
 let
 	flags = [ "-${optimizationLevel}" ]
diff --git a/packages/compileOptimized/Rust.nix b/packages/compileOptimized/Rust.nix
index c22e8d5..449f543 100644
--- a/packages/compileOptimized/Rust.nix
+++ b/packages/compileOptimized/Rust.nix
@@ -21,13 +21,13 @@
 
 pkg:
 
-assert builtins.elem opt-level [ "0" "1" "2" "3" "s" "z" ];
-assert builtins.elem debug [ "none" "line-directives-only" "line-tables-only" "limited" "full" ];
-assert builtins.elem split-debuginfo [ "off" "packed" "unpacked" ];
-assert builtins.elem strip [ "none" "debuginfo" "symbols" ];
-assert builtins.elem lto [ "off" "thin" "fat" ];
-assert builtins.elem panic [ "unwind" "abort" ];
-assert codegen-units > 0;
+assert lib.assertOneOf "opt-level" opt-level [ "0" "1" "2" "3" "s" "z" ];
+assert lib.assertOneOf "debug" debug [ "none" "line-directives-only" "line-tables-only" "limited" "full" ];
+assert lib.assertOneOf "split-debug-info" split-debuginfo [ "off" "packed" "unpacked" ];
+assert lib.assertOneOf "strip" strip [ "none" "debuginfo" "symbols" ];
+assert lib.assertOneOf "lto" lto [ "off" "thin" "fat" ];
+assert lib.assertOneOf "panic" panic [ "unwind" "abort" ];
+assert lib.assertMsg (codegen-units > 0 && lib.mod codegen-units 1 == 0) "codegen-units must be a positive integer";
 
 let
   codegenOptions = [