enum variants for routing

This commit is contained in:
Brandon Thomas committed 2026-05-28 18:06:54 -04:00
1 parent b72a685c5c
commit 5cf299d325
3 files changed
+34 -3

No files matched your search

@@ -37,6 +37,10 @@ pub enum InferenceJobExternalThirdParty {
#[serde(rename = "seedance2pro_alt")]
Seedance2ProAlt,
/// Seedance 2 Pro BytePlus Ultra jobs
#[serde(rename = "seedance2pro_bpu")]
Seedance2ProBytePlusUltra,
/// World Labs jobs
#[serde(rename = "worldlabs")]
Worldlabs,
@@ -56,6 +60,7 @@ impl InferenceJobExternalThirdParty {
Self::GrokApi => "grok_api",
Self::Seedance2Pro => "seedance2pro",
Self::Seedance2ProAlt => "seedance2pro_alt",
Self::Seedance2ProBytePlusUltra => "seedance2pro_bpu",
Self::Worldlabs => "worldlabs",
}
}
@@ -68,6 +73,7 @@ impl InferenceJobExternalThirdParty {
"grok_api" => Ok(Self::GrokApi),
"seedance2pro" => Ok(Self::Seedance2Pro),
"seedance2pro_alt" => Ok(Self::Seedance2ProAlt),
"seedance2pro_bpu" => Ok(Self::Seedance2ProBytePlusUltra),
"worldlabs" => Ok(Self::Worldlabs),
_ => Err(format!("invalid value: {:?}", value)),
}
@@ -83,6 +89,7 @@ impl InferenceJobExternalThirdParty {
Self::GrokApi,
Self::Seedance2Pro,
Self::Seedance2ProAlt,
Self::Seedance2ProBytePlusUltra,
Self::Worldlabs,
])
}
@@ -104,6 +111,7 @@ mod tests {
assert_serialization(InferenceJobExternalThirdParty::GrokApi, "grok_api");
assert_serialization(InferenceJobExternalThirdParty::Seedance2Pro, "seedance2pro");
assert_serialization(InferenceJobExternalThirdParty::Seedance2ProAlt, "seedance2pro_alt");
assert_serialization(InferenceJobExternalThirdParty::Seedance2ProBytePlusUltra, "seedance2pro_bpu");
assert_serialization(InferenceJobExternalThirdParty::Worldlabs, "worldlabs");
}
@@ -115,6 +123,7 @@ mod tests {
assert_eq!(InferenceJobExternalThirdParty::GrokApi.to_str(), "grok_api");
assert_eq!(InferenceJobExternalThirdParty::Seedance2Pro.to_str(), "seedance2pro");
assert_eq!(InferenceJobExternalThirdParty::Seedance2ProAlt.to_str(), "seedance2pro_alt");
assert_eq!(InferenceJobExternalThirdParty::Seedance2ProBytePlusUltra.to_str(), "seedance2pro_bpu");
assert_eq!(InferenceJobExternalThirdParty::Worldlabs.to_str(), "worldlabs");
}
@@ -126,13 +135,14 @@ mod tests {
assert_eq!(InferenceJobExternalThirdParty::from_str("grok_api").unwrap(), InferenceJobExternalThirdParty::GrokApi);
assert_eq!(InferenceJobExternalThirdParty::from_str("seedance2pro").unwrap(), InferenceJobExternalThirdParty::Seedance2Pro);
assert_eq!(InferenceJobExternalThirdParty::from_str("seedance2pro_alt").unwrap(), InferenceJobExternalThirdParty::Seedance2ProAlt);
assert_eq!(InferenceJobExternalThirdParty::from_str("seedance2pro_bpu").unwrap(), InferenceJobExternalThirdParty::Seedance2ProBytePlusUltra);
assert_eq!(InferenceJobExternalThirdParty::from_str("worldlabs").unwrap(), InferenceJobExternalThirdParty::Worldlabs);
}
#[test]
fn all_variants() {
// Static check
const EXPECTED_COUNT : usize = 7;
const EXPECTED_COUNT : usize = 8;
assert_eq!(InferenceJobExternalThirdParty::all_variants().len(), EXPECTED_COUNT);
assert_eq!(InferenceJobExternalThirdParty::iter().len(), EXPECTED_COUNT);
@@ -58,6 +58,11 @@ pub enum InferenceJobProductCategory {
#[serde(rename = "seedance2pro_video_alt")]
Seedance2ProVideoAlt,
// =============== SEEDANCE 2 PRO BYTEPLUS ULTRA ===============
#[serde(rename = "seedance2pro_video_bpu")]
Seedance2ProVideoBytePlusUltra,
// =============== WORLD LABS ===============
/// World Labs: Gaussian Splat Generation
@@ -165,6 +170,7 @@ impl InferenceJobProductCategory {
Self::Seedance2ProVideo => "seedance2pro_video",
Self::Seedance2ProCharacter => "seedance2pro_character",
Self::Seedance2ProVideoAlt => "seedance2pro_video_alt",
Self::Seedance2ProVideoBytePlusUltra => "seedance2pro_video_bpu",
Self::WorldlabsSplat => "worldlabs_splat",
Self::TtsGptSoVits => "tts_gpt_so_vits",
Self::TtsStyleTts2 => "tts_style_tts2",
@@ -204,6 +210,7 @@ impl InferenceJobProductCategory {
"seedance2pro_video" => Ok(Self::Seedance2ProVideo),
"seedance2pro_character" => Ok(Self::Seedance2ProCharacter),
"seedance2pro_video_alt" => Ok(Self::Seedance2ProVideoAlt),
"seedance2pro_video_bpu" => Ok(Self::Seedance2ProVideoBytePlusUltra),
"worldlabs_splat" => Ok(Self::WorldlabsSplat),
"tts_gpt_so_vits" => Ok(Self::TtsGptSoVits),
"tts_style_tts2" => Ok(Self::TtsStyleTts2),
@@ -246,6 +253,7 @@ impl InferenceJobProductCategory {
Self::Seedance2ProVideo,
Self::Seedance2ProCharacter,
Self::Seedance2ProVideoAlt,
Self::Seedance2ProVideoBytePlusUltra,
Self::WorldlabsSplat,
Self::TtsGptSoVits,
Self::TtsStyleTts2,
@@ -294,6 +302,7 @@ mod tests {
assert_serialization(InferenceJobProductCategory::Seedance2ProVideo, "seedance2pro_video");
assert_serialization(InferenceJobProductCategory::Seedance2ProCharacter, "seedance2pro_character");
assert_serialization(InferenceJobProductCategory::Seedance2ProVideoAlt, "seedance2pro_video_alt");
assert_serialization(InferenceJobProductCategory::Seedance2ProVideoBytePlusUltra, "seedance2pro_video_bpu");
assert_serialization(InferenceJobProductCategory::WorldlabsSplat, "worldlabs_splat");
assert_serialization(InferenceJobProductCategory::TtsGptSoVits, "tts_gpt_so_vits");
assert_serialization(InferenceJobProductCategory::TtsStyleTts2, "tts_style_tts2");
@@ -332,6 +341,7 @@ mod tests {
assert_eq!(InferenceJobProductCategory::Seedance2ProVideo.to_str(), "seedance2pro_video");
assert_eq!(InferenceJobProductCategory::Seedance2ProCharacter.to_str(), "seedance2pro_character");
assert_eq!(InferenceJobProductCategory::Seedance2ProVideoAlt.to_str(), "seedance2pro_video_alt");
assert_eq!(InferenceJobProductCategory::Seedance2ProVideoBytePlusUltra.to_str(), "seedance2pro_video_bpu");
assert_eq!(InferenceJobProductCategory::WorldlabsSplat.to_str(), "worldlabs_splat");
assert_eq!(InferenceJobProductCategory::TtsGptSoVits.to_str(), "tts_gpt_so_vits");
assert_eq!(InferenceJobProductCategory::TtsStyleTts2.to_str(), "tts_style_tts2");
@@ -369,6 +379,7 @@ mod tests {
assert_eq!(InferenceJobProductCategory::from_str("seedance2pro_video").unwrap(), InferenceJobProductCategory::Seedance2ProVideo);
assert_eq!(InferenceJobProductCategory::from_str("seedance2pro_character").unwrap(), InferenceJobProductCategory::Seedance2ProCharacter);
assert_eq!(InferenceJobProductCategory::from_str("seedance2pro_video_alt").unwrap(), InferenceJobProductCategory::Seedance2ProVideoAlt);
assert_eq!(InferenceJobProductCategory::from_str("seedance2pro_video_bpu").unwrap(), InferenceJobProductCategory::Seedance2ProVideoBytePlusUltra);
assert_eq!(InferenceJobProductCategory::from_str("worldlabs_splat").unwrap(), InferenceJobProductCategory::WorldlabsSplat);
assert_eq!(InferenceJobProductCategory::from_str("tts_gpt_so_vits").unwrap(), InferenceJobProductCategory::TtsGptSoVits);
assert_eq!(InferenceJobProductCategory::from_str("tts_style_tts2").unwrap(), InferenceJobProductCategory::TtsStyleTts2);
@@ -396,7 +407,7 @@ mod tests {
#[test]
fn all_variants() {
// Static check
const EXPECTED_COUNT : usize = 34;
const EXPECTED_COUNT : usize = 35;
assert_eq!(InferenceJobProductCategory::all_variants().len(), EXPECTED_COUNT);
assert_eq!(InferenceJobProductCategory::iter().len(), EXPECTED_COUNT);
@@ -39,6 +39,10 @@ pub enum InferenceJobType {
#[serde(rename = "seedance2pro_alt_queue")]
Seedance2ProAltQueue,
/// Seedance 2 Pro BytePlus Ultra jobs. We poll for results.
#[serde(rename = "seedance2pro_bpu_queue")]
Seedance2ProBytePlusUltraQueue,
/// Beeble jobs. We poll for results.
#[serde(rename = "beeble_queue")]
BeebleQueue,
@@ -143,6 +147,7 @@ impl InferenceJobType {
Self::BeebleQueue => "beeble_queue",
Self::Seedance2ProQueue => "seedance2pro_queue",
Self::Seedance2ProAltQueue => "seedance2pro_alt_queue",
Self::Seedance2ProBytePlusUltraQueue => "seedance2pro_bpu_queue",
Self::Seedance2ProCharacter => "seedance2pro_character",
Self::WorldlabsQueue => "worldlabs_queue",
Self::VideoRender => "video_render",
@@ -177,6 +182,7 @@ impl InferenceJobType {
"seedance2pro_queue" => Ok(Self::Seedance2ProQueue),
"seedance2pro_character" => Ok(Self::Seedance2ProCharacter),
"seedance2pro_alt_queue" => Ok(Self::Seedance2ProAltQueue),
"seedance2pro_bpu_queue" => Ok(Self::Seedance2ProBytePlusUltraQueue),
"worldlabs_queue" => Ok(Self::WorldlabsQueue),
"video_render" => Ok(Self::VideoRender),
"live_portrait" => Ok(Self::LivePortrait),
@@ -213,6 +219,7 @@ impl InferenceJobType {
Self::Seedance2ProQueue,
Self::Seedance2ProCharacter,
Self::Seedance2ProAltQueue,
Self::Seedance2ProBytePlusUltraQueue,
Self::WorldlabsQueue,
Self::VideoRender,
Self::LivePortrait,
@@ -260,6 +267,7 @@ mod tests {
assert_serialization(InferenceJobType::Seedance2ProQueue, "seedance2pro_queue");
assert_serialization(InferenceJobType::Seedance2ProCharacter, "seedance2pro_character");
assert_serialization(InferenceJobType::Seedance2ProAltQueue, "seedance2pro_alt_queue");
assert_serialization(InferenceJobType::Seedance2ProBytePlusUltraQueue, "seedance2pro_bpu_queue");
assert_serialization(InferenceJobType::WorldlabsQueue, "worldlabs_queue");
assert_serialization(InferenceJobType::VideoRender, "video_render");
assert_serialization(InferenceJobType::LivePortrait, "live_portrait");
@@ -292,6 +300,7 @@ mod tests {
assert_eq!(InferenceJobType::Seedance2ProQueue.to_str(), "seedance2pro_queue");
assert_eq!(InferenceJobType::Seedance2ProCharacter.to_str(), "seedance2pro_character");
assert_eq!(InferenceJobType::Seedance2ProAltQueue.to_str(), "seedance2pro_alt_queue");
assert_eq!(InferenceJobType::Seedance2ProBytePlusUltraQueue.to_str(), "seedance2pro_bpu_queue");
assert_eq!(InferenceJobType::WorldlabsQueue.to_str(), "worldlabs_queue");
assert_eq!(InferenceJobType::VideoRender.to_str(), "video_render");
assert_eq!(InferenceJobType::LivePortrait.to_str(), "live_portrait");
@@ -324,6 +333,7 @@ mod tests {
assert_eq!(InferenceJobType::from_str("seedance2pro_queue").unwrap(), InferenceJobType::Seedance2ProQueue);
assert_eq!(InferenceJobType::from_str("seedance2pro_character").unwrap(), InferenceJobType::Seedance2ProCharacter);
assert_eq!(InferenceJobType::from_str("seedance2pro_alt_queue").unwrap(), InferenceJobType::Seedance2ProAltQueue);
assert_eq!(InferenceJobType::from_str("seedance2pro_bpu_queue").unwrap(), InferenceJobType::Seedance2ProBytePlusUltraQueue);
assert_eq!(InferenceJobType::from_str("worldlabs_queue").unwrap(), InferenceJobType::WorldlabsQueue);
assert_eq!(InferenceJobType::from_str("video_render").unwrap(), InferenceJobType::VideoRender);
assert_eq!(InferenceJobType::from_str("live_portrait").unwrap(), InferenceJobType::LivePortrait);
@@ -350,7 +360,7 @@ mod tests {
#[test]
fn all_variants() {
// Static check
const EXPECTED_COUNT : usize = 28;
const EXPECTED_COUNT : usize = 29;
assert_eq!(InferenceJobType::all_variants().len(), EXPECTED_COUNT);
assert_eq!(InferenceJobType::iter().len(), EXPECTED_COUNT);