rename enum

This commit is contained in:
Brandon Thomas committed 2026-05-12 16:24:16 -04:00
1 parent b9e54702fd
commit 436f368c35
2 files changed
+13 -12

No files matched your search

@@ -28,6 +28,7 @@ CREATE TABLE media_files (
-- There is an index on this column.
-- Broad "category" for where the file came from:
-- * 'inference' for inference output
-- * 'inference_third' for inference output
-- * 'processed' for processed file (eg. mp3 encoding, stem splitting, etc.)
-- * 'upload' for direct user upload (from the filesystem)
-- * 'device_api' for direct user uploads recorded using Browser/Device APIs.
@@ -18,6 +18,11 @@ pub enum MediaFileOriginCategory {
/// ML model inference output - uploaded models or zero shot.
Inference,
/// Third-party inference output (e.g. FAL, Replicate).
/// The file was generated by a third-party AI service and uploaded by the client.
#[serde(rename = "inference3rd")]
ThirdPartyInference,
/// Processed results - (we don't have these systems yet, but eg. trim, transcode, etc).
Processed,
@@ -35,11 +40,6 @@ pub enum MediaFileOriginCategory {
/// From Storyteller Studio Engine
#[deprecated(note = "DO NOT USE. Originally deprecated in favor of `StorytellerStudio`.")]
StoryEngine,
/// Third-party inference output (e.g. FAL, Replicate).
/// The file was generated by a third-party AI service and uploaded by the client.
#[serde(rename = "3p_inference")]
ThirdPartyInference,
}
// TODO(bt, 2022-12-21): This desperately needs MySQL integration tests!
@@ -52,24 +52,24 @@ impl MediaFileOriginCategory {
pub fn to_str(&self) -> &'static str {
match self {
Self::Inference => "inference",
Self::ThirdPartyInference => "inference3rd",
Self::Processed => "processed",
Self::Upload => "upload",
Self::DeviceApi => "device_api",
Self::StorytellerStudio => "studio",
Self::StoryEngine => "story_engine",
Self::ThirdPartyInference => "3p_inference",
}
}
pub fn from_str(value: &str) -> Result<Self, String> {
match value {
"inference" => Ok(Self::Inference),
"inference3rd" => Ok(Self::ThirdPartyInference),
"processed" => Ok(Self::Processed),
"upload" => Ok(Self::Upload),
"device_api" => Ok(Self::DeviceApi),
"studio" => Ok(Self::StorytellerStudio),
"story_engine" => Ok(Self::StoryEngine),
"3p_inference" => Ok(Self::ThirdPartyInference),
_ => Err(format!("invalid value: {:?}", value)),
}
}
@@ -77,12 +77,12 @@ impl MediaFileOriginCategory {
pub fn all_variants() -> BTreeSet<Self> {
BTreeSet::from([
Self::Inference,
Self::ThirdPartyInference,
Self::Processed,
Self::Upload,
Self::DeviceApi,
Self::StorytellerStudio,
Self::StoryEngine,
Self::ThirdPartyInference,
])
}
}
@@ -98,34 +98,34 @@ mod tests {
#[test]
fn test_serialization() {
assert_serialization(MediaFileOriginCategory::Inference, "inference");
assert_serialization(MediaFileOriginCategory::ThirdPartyInference, "inference3rd");
assert_serialization(MediaFileOriginCategory::Processed, "processed");
assert_serialization(MediaFileOriginCategory::Upload, "upload");
assert_serialization(MediaFileOriginCategory::DeviceApi, "device_api");
assert_serialization(MediaFileOriginCategory::StorytellerStudio, "studio");
assert_serialization(MediaFileOriginCategory::StoryEngine, "story_engine");
assert_serialization(MediaFileOriginCategory::ThirdPartyInference, "3p_inference");
}
#[test]
fn test_to_str() {
assert_eq!(MediaFileOriginCategory::Inference.to_str(), "inference");
assert_eq!(MediaFileOriginCategory::ThirdPartyInference.to_str(), "inference3rd");
assert_eq!(MediaFileOriginCategory::Processed.to_str(), "processed");
assert_eq!(MediaFileOriginCategory::Upload.to_str(), "upload");
assert_eq!(MediaFileOriginCategory::DeviceApi.to_str(), "device_api");
assert_eq!(MediaFileOriginCategory::StorytellerStudio.to_str(), "studio");
assert_eq!(MediaFileOriginCategory::StoryEngine.to_str(), "story_engine");
assert_eq!(MediaFileOriginCategory::ThirdPartyInference.to_str(), "3p_inference");
}
#[test]
fn test_from_str() {
assert_eq!(MediaFileOriginCategory::from_str("inference").unwrap(), MediaFileOriginCategory::Inference);
assert_eq!(MediaFileOriginCategory::from_str("inference3rd").unwrap(), MediaFileOriginCategory::ThirdPartyInference);
assert_eq!(MediaFileOriginCategory::from_str("processed").unwrap(), MediaFileOriginCategory::Processed);
assert_eq!(MediaFileOriginCategory::from_str("upload").unwrap(), MediaFileOriginCategory::Upload);
assert_eq!(MediaFileOriginCategory::from_str("device_api").unwrap(), MediaFileOriginCategory::DeviceApi);
assert_eq!(MediaFileOriginCategory::from_str("studio").unwrap(), MediaFileOriginCategory::StorytellerStudio);
assert_eq!(MediaFileOriginCategory::from_str("story_engine").unwrap(), MediaFileOriginCategory::StoryEngine);
assert_eq!(MediaFileOriginCategory::from_str("3p_inference").unwrap(), MediaFileOriginCategory::ThirdPartyInference);
assert!(MediaFileOriginCategory::from_str("foo").is_err());
}
@@ -134,12 +134,12 @@ mod tests {
let mut variants = MediaFileOriginCategory::all_variants();
assert_eq!(variants.len(), 7);
assert_eq!(variants.pop_first(), Some(MediaFileOriginCategory::Inference));
assert_eq!(variants.pop_first(), Some(MediaFileOriginCategory::ThirdPartyInference));
assert_eq!(variants.pop_first(), Some(MediaFileOriginCategory::Processed));
assert_eq!(variants.pop_first(), Some(MediaFileOriginCategory::Upload));
assert_eq!(variants.pop_first(), Some(MediaFileOriginCategory::DeviceApi));
assert_eq!(variants.pop_first(), Some(MediaFileOriginCategory::StorytellerStudio));
assert_eq!(variants.pop_first(), Some(MediaFileOriginCategory::StoryEngine));
assert_eq!(variants.pop_first(), Some(MediaFileOriginCategory::ThirdPartyInference));
assert_eq!(variants.pop_first(), None);
}
}