#[cfg(not(feature = "std"))]
extern crate alloc;
#[cfg(not(feature = "std"))]
use alloc::string::{String, ToString};
pub struct ScriptGenerator {
pub title: String,
pub styles_count: usize,
pub events_count: usize,
pub complexity_level: ComplexityLevel,
}
#[derive(Debug, Clone, Copy)]
pub enum ComplexityLevel {
Simple,
Moderate,
Complex,
Extreme,
AnimeRealistic,
MovieRealistic,
KaraokeRealistic,
SignRealistic,
EducationalRealistic,
}
impl ScriptGenerator {
#[must_use]
pub fn simple(events_count: usize) -> Self {
Self {
title: "Simple Benchmark Script".to_string(),
styles_count: 1,
events_count,
complexity_level: ComplexityLevel::Simple,
}
}
#[must_use]
pub fn moderate(events_count: usize) -> Self {
Self {
title: "Moderate Benchmark Script".to_string(),
styles_count: 5,
events_count,
complexity_level: ComplexityLevel::Moderate,
}
}
#[must_use]
pub fn complex(events_count: usize) -> Self {
Self {
title: "Complex Benchmark Script".to_string(),
styles_count: 10,
events_count,
complexity_level: ComplexityLevel::Complex,
}
}
#[must_use]
pub fn extreme(events_count: usize) -> Self {
Self {
title: "Extreme Benchmark Script".to_string(),
styles_count: 20,
events_count,
complexity_level: ComplexityLevel::Extreme,
}
}
#[must_use]
pub fn anime_realistic(events_count: usize) -> Self {
Self {
title: "Anime Subtitles".to_string(),
styles_count: 15,
events_count,
complexity_level: ComplexityLevel::AnimeRealistic,
}
}
#[must_use]
pub fn movie_realistic(events_count: usize) -> Self {
Self {
title: "Movie Subtitles".to_string(),
styles_count: 3,
events_count,
complexity_level: ComplexityLevel::MovieRealistic,
}
}
#[must_use]
pub fn karaoke_realistic(events_count: usize) -> Self {
Self {
title: "Karaoke Script".to_string(),
styles_count: 8,
events_count,
complexity_level: ComplexityLevel::KaraokeRealistic,
}
}
#[must_use]
pub fn sign_realistic(events_count: usize) -> Self {
Self {
title: "Sign Translation".to_string(),
styles_count: 12,
events_count,
complexity_level: ComplexityLevel::SignRealistic,
}
}
#[must_use]
pub fn educational_realistic(events_count: usize) -> Self {
Self {
title: "Educational Content".to_string(),
styles_count: 6,
events_count,
complexity_level: ComplexityLevel::EducationalRealistic,
}
}
}