From df71f594b6c147907c5999170dc6cc4e937269ab Mon Sep 17 00:00:00 2001
From: "hinto.janai" <hinto.janai@protonmail.com>
Date: Fri, 29 Mar 2024 20:20:57 -0400
Subject: [PATCH] workspace: add `strum`

---
 Cargo.lock                    | 50 ++++++++++++++++++++++++++++++++++-
 Cargo.toml                    |  1 +
 database/benchmark/Cargo.toml | 20 +++++++-------
 3 files changed, 61 insertions(+), 10 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock
index f908d1cf..e1f7a7b5 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -623,10 +623,12 @@ dependencies = [
  "anyhow",
  "cfg-if",
  "clap",
+ "cuprate-database",
  "cuprate-helper",
  "rayon",
  "serde",
  "serde_json",
+ "strum",
  "toml_edit 0.22.9",
  "tracing",
 ]
@@ -2524,6 +2526,15 @@ dependencies = [
  "serde",
 ]
 
+[[package]]
+name = "serde_spanned"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+dependencies = [
+ "serde",
+]
+
 [[package]]
 name = "serde_urlencoded"
 version = "0.7.1"
@@ -2651,6 +2662,28 @@ version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
 
+[[package]]
+name = "strum"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29"
+dependencies = [
+ "strum_macros",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn 2.0.52",
+]
+
 [[package]]
 name = "subtle"
 version = "2.5.0"
@@ -2915,6 +2948,9 @@ name = "toml_datetime"
 version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+dependencies = [
+ "serde",
+]
 
 [[package]]
 name = "toml_edit"
@@ -2924,7 +2960,7 @@ checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
 dependencies = [
  "indexmap 2.2.5",
  "toml_datetime",
- "winnow",
+ "winnow 0.5.40",
 ]
 
 [[package]]
@@ -2934,7 +2970,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4"
 dependencies = [
  "indexmap 2.2.5",
+ "serde",
+ "serde_spanned",
  "toml_datetime",
+ "winnow 0.6.5",
 ]
 
 [[package]]
@@ -3409,6 +3448,15 @@ dependencies = [
  "memchr",
 ]
 
+[[package]]
+name = "winnow"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
+dependencies = [
+ "memchr",
+]
+
 [[package]]
 name = "winreg"
 version = "0.50.0"
diff --git a/Cargo.toml b/Cargo.toml
index 690beec9..9404f3a1 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -64,6 +64,7 @@ rayon                 = { version = "1.9.0", default-features = false }
 serde_bytes           = { version = "0.11.12", default-features = false }
 serde_json            = { version = "1.0.108", default-features = false }
 serde                 = { version = "1.0.190", default-features = false }
+strum                 = { version = "0.26.2", default-features = false }
 thiserror             = { version = "1.0.50", default-features = false }
 thread_local		  = { version = "1.1.7", default-features = false }
 tokio-util            = { version = "0.7.10", default-features = false }
diff --git a/database/benchmark/Cargo.toml b/database/benchmark/Cargo.toml
index be1e287a..8baf898c 100644
--- a/database/benchmark/Cargo.toml
+++ b/database/benchmark/Cargo.toml
@@ -12,14 +12,16 @@ keywords    = ["cuprate", "database", "benchmark"]
 default   = []
 
 [dependencies]
-anyhow         = { workspace = true }
-cfg-if         = { workspace = true }
-clap           = { workspace = true, features = ["default", "derive", "cargo"] }
-cuprate-helper = { path = "../../helper", features = ["fs", "thread"] }
-serde          = { workspace = true, features = ["default", "derive"] }
-serde_json     = { workspace = true, features = ["default"] }
-tracing        = { workspace = true }
-toml_edit      = { workspace = true }
-rayon          = { workspace = true, optional = true }
+anyhow           = { workspace = true }
+cfg-if           = { workspace = true }
+clap             = { workspace = true, features = ["default", "derive", "cargo"] }
+cuprate-database = { path = "../", features = ["default", "serde"] }
+cuprate-helper   = { path = "../../helper", features = ["fs", "thread"] }
+serde            = { workspace = true, features = ["default", "derive"] }
+serde_json       = { workspace = true, features = ["default"] }
+strum            = { workspace = true, features = ["default", "derive"] }
+tracing          = { workspace = true }
+toml_edit        = { workspace = true, features = ["default", "serde"] }
+rayon            = { workspace = true, optional = true }
 
 [dev-dependencies]
\ No newline at end of file