mirror of
https://github.com/storytold/artcraft.git
synced 2026-10-20 17:02:53 -04:00
all_variants enum methods (#1191)
This commit is contained in:
+17
@@ -64,6 +64,11 @@ pub enum GenericDownloadType {
|
||||
|
||||
/// NB: Legacy API for older code.
|
||||
impl GenericDownloadType {
|
||||
pub fn all_variants() -> std::collections::BTreeSet<Self> {
|
||||
use strum::IntoEnumIterator;
|
||||
Self::iter().collect()
|
||||
}
|
||||
|
||||
pub fn to_str(&self) -> &'static str {
|
||||
match self {
|
||||
Self::HifiGan => "hifigan",
|
||||
@@ -154,5 +159,17 @@ mod tests {
|
||||
assert!(serialized.len() <= MAX_LENGTH, "variant {:?} is too long", variant);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn all_variants_returns_all() {
|
||||
let variants = GenericDownloadType::all_variants();
|
||||
assert_eq!(variants.len(), 8);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn all_variants_matches_iter_count() {
|
||||
use strum::IntoEnumIterator;
|
||||
assert_eq!(GenericDownloadType::all_variants().len(), GenericDownloadType::iter().count());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+17
@@ -51,6 +51,11 @@ impl_mysql_enum_coders!(InferenceJobType);
|
||||
impl_mysql_from_row!(InferenceJobType);
|
||||
|
||||
impl InferenceJobType {
|
||||
pub fn all_variants() -> std::collections::BTreeSet<Self> {
|
||||
use strum::IntoEnumIterator;
|
||||
Self::iter().collect()
|
||||
}
|
||||
|
||||
pub fn to_str(&self) -> &'static str {
|
||||
match self {
|
||||
Self::FalQueue => "fal_queue",
|
||||
@@ -229,5 +234,17 @@ mod tests {
|
||||
assert!(serialized.len() <= MAX_LENGTH, "variant {:?} is too long", variant);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn all_variants_returns_all() {
|
||||
let variants = InferenceJobType::all_variants();
|
||||
assert_eq!(variants.len(), 23);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn all_variants_matches_iter_count() {
|
||||
use strum::IntoEnumIterator;
|
||||
assert_eq!(InferenceJobType::all_variants().len(), InferenceJobType::iter().count());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+17
@@ -60,6 +60,11 @@ impl_mysql_from_row!(InferenceModelType);
|
||||
|
||||
/// NB: Legacy API for older code.
|
||||
impl InferenceModelType {
|
||||
pub fn all_variants() -> std::collections::BTreeSet<Self> {
|
||||
use strum::IntoEnumIterator;
|
||||
Self::iter().collect()
|
||||
}
|
||||
|
||||
pub fn to_str(&self) -> &'static str {
|
||||
match self {
|
||||
Self::RvcV2 => "rvc_v2",
|
||||
@@ -193,5 +198,17 @@ mod tests {
|
||||
assert!(serialized.len() <= MAX_LENGTH, "variant {:?} is too long", variant);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn all_variants_returns_all() {
|
||||
let variants = InferenceModelType::all_variants();
|
||||
assert_eq!(variants.len(), 15);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn all_variants_matches_iter_count() {
|
||||
use strum::IntoEnumIterator;
|
||||
assert_eq!(InferenceModelType::all_variants().len(), InferenceModelType::iter().count());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,6 +29,11 @@ impl_mysql_from_row!(UserFeatureFlag);
|
||||
|
||||
/// NB: Legacy API for older code.
|
||||
impl UserFeatureFlag {
|
||||
pub fn all_variants() -> std::collections::BTreeSet<Self> {
|
||||
use strum::IntoEnumIterator;
|
||||
Self::iter().collect()
|
||||
}
|
||||
|
||||
pub fn to_str(&self) -> &'static str {
|
||||
match self {
|
||||
Self::ExploreMedia => "explore_media",
|
||||
@@ -108,5 +113,17 @@ mod tests {
|
||||
assert!(serialized.len() <= MAX_LENGTH, "variant {:?} is too long", variant);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn all_variants_returns_all() {
|
||||
let variants = UserFeatureFlag::all_variants();
|
||||
assert_eq!(variants.len(), 4);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn all_variants_matches_iter_count() {
|
||||
use strum::IntoEnumIterator;
|
||||
assert_eq!(UserFeatureFlag::all_variants().len(), UserFeatureFlag::iter().count());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user