pub struct BuiltinRules;analysis only.Expand description
Built-in lint rules registry
Provides access to all built-in rules that check for common issues in ASS subtitle scripts. Rules are organized by category and can be used individually or as a complete set.
§Performance
All rules are designed for efficient execution with minimal memory overhead. Most rules have O(n) or O(n log n) time complexity.
§Rule List
TimingOverlapRule: Detects overlapping dialogue eventsNegativeDurationRule: Finds events with invalid durationsInvalidColorRule: Validates color formats in styles and tagsMissingStyleRule: Checks for undefined style referencesInvalidTagRule: Detects malformed override tagsPerformanceRule: Identifies performance-impacting patternsEncodingRule: Validates text encoding and character usageAccessibilityRule: Ensures readability and compatibility
Implementations§
Source§impl BuiltinRules
impl BuiltinRules
Sourcepub fn all_rules() -> Vec<Box<dyn LintRule>>
pub fn all_rules() -> Vec<Box<dyn LintRule>>
Get all built-in linting rules
Returns a vector of all available built-in rules ready for use. Rules are returned in their default configuration with standard severity levels and categories.
§Example
use ass_core::analysis::linting::rules::BuiltinRules;
let rules = BuiltinRules::all_rules();
assert_eq!(rules.len(), 8); // All built-in rulesSourcepub fn rules_for_category(category: IssueCategory) -> Vec<Box<dyn LintRule>>
pub fn rules_for_category(category: IssueCategory) -> Vec<Box<dyn LintRule>>
Get rules by category
Returns only rules that check issues in the specified category. Useful for focused linting or when only certain types of issues need to be checked.
§Arguments
category- The issue category to filter by
§Example
use ass_core::analysis::linting::{IssueCategory, rules::BuiltinRules};
let timing_rules = BuiltinRules::rules_for_category(IssueCategory::Timing);
// Returns timing-related rules onlySourcepub fn rule_by_id(id: &str) -> Option<Box<dyn LintRule>>
pub fn rule_by_id(id: &str) -> Option<Box<dyn LintRule>>
Get rule by ID
Returns the rule with the specified ID, or None if no such rule exists. Rule IDs are unique identifiers used for configuration and reporting.
§Arguments
id- The rule ID to search for
§Example
use ass_core::analysis::linting::rules::BuiltinRules;
let rule = BuiltinRules::rule_by_id("timing-overlap");
assert!(rule.is_some());
assert_eq!(rule.unwrap().id(), "timing-overlap");Sourcepub fn all_rule_ids() -> Vec<&'static str>
pub fn all_rule_ids() -> Vec<&'static str>
Get all rule IDs
Returns a vector of all available rule IDs for configuration and reporting purposes.
§Example
use ass_core::analysis::linting::rules::BuiltinRules;
let ids = BuiltinRules::all_rule_ids();
assert!(ids.contains(&"timing-overlap"));
assert!(ids.contains(&"negative-duration"));