From bde8975d0433ae1936e38118aec97f52d37b32ae Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 20 Mar 2026 09:14:52 -0400 Subject: [PATCH] strum wip --- crates/schema/public/enums_api/Cargo.toml | 12 +++--------- .../generic_inference_jobs/inference_job_type.rs | 3 ++- .../media_files/media_file_origin_model_type.rs | 3 ++- .../src/by_table/model_weights/weights_types.rs | 3 ++- .../src/common/generation/common_aspect_ratio.rs | 4 +--- .../src/common/generation/common_image_model.rs | 4 +--- .../src/common/generation/common_splat_model.rs | 4 +--- .../src/common/generation/common_video_model.rs | 4 +--- .../src/common/generation/common_video_resolution.rs | 4 +--- .../src/common/generation/generation_provider.rs | 5 +---- 10 files changed, 15 insertions(+), 31 deletions(-) diff --git a/crates/schema/public/enums_api/Cargo.toml b/crates/schema/public/enums_api/Cargo.toml index e4fb5d32f0..53f746b811 100644 --- a/crates/schema/public/enums_api/Cargo.toml +++ b/crates/schema/public/enums_api/Cargo.toml @@ -22,19 +22,13 @@ workspace-build-acceleration.workspace = true # Internal enums_shared.workspace = true -# Serialization +# External +log.workspace = true serde.workspace = true serde_derive.workspace = true - -# API documentation +strum.workspace = true utoipa.workspace = true -log.workspace = true - [dev-dependencies] -# Enum utilities -strum.workspace = true - -# Test serialization serde_json.workspace = true toml.workspace = true diff --git a/crates/schema/public/enums_api/src/by_table/generic_inference_jobs/inference_job_type.rs b/crates/schema/public/enums_api/src/by_table/generic_inference_jobs/inference_job_type.rs index 2853b1ff42..b54eff6dda 100644 --- a/crates/schema/public/enums_api/src/by_table/generic_inference_jobs/inference_job_type.rs +++ b/crates/schema/public/enums_api/src/by_table/generic_inference_jobs/inference_job_type.rs @@ -1,3 +1,4 @@ +use strum::EnumIter; use utoipa::ToSchema; /// Report certain jobs publicly as different from what we actually run. @@ -5,7 +6,7 @@ use utoipa::ToSchema; /// the same models or workflows. /// /// Previously named `PublicInferenceJobType` in the `enums_public` crate. -#[derive(Clone, Copy, Eq, PartialEq, Hash, Ord, PartialOrd, Deserialize, Serialize, Default, ToSchema, Debug)] +#[derive(Clone, Copy, Eq, PartialEq, Hash, Ord, PartialOrd, Deserialize, Serialize, Default, ToSchema, Debug, EnumIter)] #[serde(rename_all = "snake_case")] pub enum InferenceJobType { // ======= Renamed enum variants ====== diff --git a/crates/schema/public/enums_api/src/by_table/media_files/media_file_origin_model_type.rs b/crates/schema/public/enums_api/src/by_table/media_files/media_file_origin_model_type.rs index 975accb857..debbcd1783 100644 --- a/crates/schema/public/enums_api/src/by_table/media_files/media_file_origin_model_type.rs +++ b/crates/schema/public/enums_api/src/by_table/media_files/media_file_origin_model_type.rs @@ -1,5 +1,6 @@ use serde::Deserialize; use serde::Serialize; +use strum::EnumIter; use utoipa::ToSchema; /// Report certain models publicly as different from what we actually use. @@ -7,7 +8,7 @@ use utoipa::ToSchema; /// the same models. This won't always make sense, but in some cases it will. /// /// This was previously named `PublicMediaFileModelType` in the `enums_public` crate. -#[derive(Clone, Copy, Eq, PartialEq, Hash, Ord, PartialOrd, Deserialize, Serialize, ToSchema, Debug)] +#[derive(Clone, Copy, Eq, PartialEq, Hash, Ord, PartialOrd, Deserialize, Serialize, ToSchema, Debug, EnumIter)] #[serde(rename_all = "snake_case")] pub enum MediaFileOriginModelType { // Renamed enum variants diff --git a/crates/schema/public/enums_api/src/by_table/model_weights/weights_types.rs b/crates/schema/public/enums_api/src/by_table/model_weights/weights_types.rs index 2aadbeea50..dc7b2b628f 100644 --- a/crates/schema/public/enums_api/src/by_table/model_weights/weights_types.rs +++ b/crates/schema/public/enums_api/src/by_table/model_weights/weights_types.rs @@ -1,9 +1,10 @@ +use strum::EnumIter; use utoipa::ToSchema; /// Report certain models publicly as different from what we actually use. /// /// Previously named `PublicWeightsType` in the `enums_public` crate. -#[derive(Clone, Copy, Eq, PartialEq, Hash, Ord, PartialOrd, Deserialize, Serialize, ToSchema, Debug)] +#[derive(Clone, Copy, Eq, PartialEq, Hash, Ord, PartialOrd, Deserialize, Serialize, ToSchema, Debug, EnumIter)] pub enum WeightsType { // Renamed enum variants diff --git a/crates/schema/public/enums_api/src/common/generation/common_aspect_ratio.rs b/crates/schema/public/enums_api/src/common/generation/common_aspect_ratio.rs index 34bbc83701..ad073ff13a 100644 --- a/crates/schema/public/enums_api/src/common/generation/common_aspect_ratio.rs +++ b/crates/schema/public/enums_api/src/common/generation/common_aspect_ratio.rs @@ -1,11 +1,9 @@ -#[cfg(test)] use strum::EnumIter; use utoipa::ToSchema; /// Common aspect ratios for video generation. /// Mirrors artcraft_router::api::common_aspect_ratio::CommonAspectRatio. -#[cfg_attr(test, derive(EnumIter))] -#[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize, ToSchema)] +#[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize, ToSchema, EnumIter)] #[serde(rename_all = "snake_case")] pub enum CommonAspectRatio { Auto, diff --git a/crates/schema/public/enums_api/src/common/generation/common_image_model.rs b/crates/schema/public/enums_api/src/common/generation/common_image_model.rs index e5fa5c731f..46b680e6a6 100644 --- a/crates/schema/public/enums_api/src/common/generation/common_image_model.rs +++ b/crates/schema/public/enums_api/src/common/generation/common_image_model.rs @@ -1,11 +1,9 @@ -#[cfg(test)] use strum::EnumIter; use utoipa::ToSchema; /// Image models available for generation. /// Mirrors artcraft_router::api::common_image_model::CommonImageModel. -#[cfg_attr(test, derive(EnumIter))] -#[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize, ToSchema)] +#[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize, ToSchema, EnumIter)] #[serde(rename_all = "snake_case")] pub enum CommonImageModel { #[serde(rename = "flux_1_dev")] diff --git a/crates/schema/public/enums_api/src/common/generation/common_splat_model.rs b/crates/schema/public/enums_api/src/common/generation/common_splat_model.rs index 046d766c57..3ffbdcefac 100644 --- a/crates/schema/public/enums_api/src/common/generation/common_splat_model.rs +++ b/crates/schema/public/enums_api/src/common/generation/common_splat_model.rs @@ -1,11 +1,9 @@ -#[cfg(test)] use strum::EnumIter; use utoipa::ToSchema; /// Splat models available for generation. /// Mirrors artcraft_router::api::common_splat_model::CommonSplatModel. -#[cfg_attr(test, derive(EnumIter))] -#[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize, ToSchema)] +#[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize, ToSchema, EnumIter)] #[serde(rename_all = "snake_case")] pub enum CommonSplatModel { #[serde(rename = "marble_0p1_mini")] diff --git a/crates/schema/public/enums_api/src/common/generation/common_video_model.rs b/crates/schema/public/enums_api/src/common/generation/common_video_model.rs index ed0e3c4bf1..8ed673f016 100644 --- a/crates/schema/public/enums_api/src/common/generation/common_video_model.rs +++ b/crates/schema/public/enums_api/src/common/generation/common_video_model.rs @@ -1,11 +1,9 @@ -#[cfg(test)] use strum::EnumIter; use utoipa::ToSchema; /// Video models available for generation. /// Mirrors artcraft_router::api::common_video_model::CommonVideoModel. -#[cfg_attr(test, derive(EnumIter))] -#[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize, ToSchema)] +#[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize, ToSchema, EnumIter)] #[serde(rename_all = "snake_case")] pub enum CommonVideoModel { #[serde(rename = "grok_video")] diff --git a/crates/schema/public/enums_api/src/common/generation/common_video_resolution.rs b/crates/schema/public/enums_api/src/common/generation/common_video_resolution.rs index b069051b66..616b9bafcb 100644 --- a/crates/schema/public/enums_api/src/common/generation/common_video_resolution.rs +++ b/crates/schema/public/enums_api/src/common/generation/common_video_resolution.rs @@ -1,11 +1,9 @@ -#[cfg(test)] use strum::EnumIter; use utoipa::ToSchema; /// Common video resolutions. /// Mirrors artcraft_router::api::common_resolution::CommonResolution. -#[cfg_attr(test, derive(EnumIter))] -#[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize, ToSchema)] +#[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize, ToSchema, EnumIter)] #[serde(rename_all = "snake_case")] pub enum CommonVideoResolution { OneK, diff --git a/crates/schema/public/enums_api/src/common/generation/generation_provider.rs b/crates/schema/public/enums_api/src/common/generation/generation_provider.rs index 589d4f80f3..1b00c5765f 100644 --- a/crates/schema/public/enums_api/src/common/generation/generation_provider.rs +++ b/crates/schema/public/enums_api/src/common/generation/generation_provider.rs @@ -5,15 +5,12 @@ //! //! Do not change the values here without cause or care. -#[cfg(test)] use strum::EnumCount; -#[cfg(test)] use strum::EnumIter; use utoipa::ToSchema; /// NB: Keep the max length to 16 characters. -#[cfg_attr(test, derive(EnumIter, EnumCount))] -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Ord, PartialOrd, Serialize, Deserialize, ToSchema)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Ord, PartialOrd, Serialize, Deserialize, ToSchema, EnumIter, EnumCount)] #[serde(rename_all = "snake_case")] pub enum GenerationProvider { Artcraft,