Available on crate feature
plugins only.Expand description
Plugin system for extending ASS parsing and rendering capabilities.
This module provides a trait-based extension system allowing custom tag handlers, section processors, and rendering backends to be registered at runtime. Designed for zero-allocation hot paths and efficient lookup via optimized hash maps.
§Architecture
TagHandler: Process custom override tags (e.g.,{\custom})SectionProcessor: Handle non-standard sections (e.g.,[Aegisub Project])ExtensionRegistry: Central registry for all extensions
§Example
use ass_core::plugin::{ExtensionRegistry, TagHandler, TagResult};
struct CustomColorTag;
impl TagHandler for CustomColorTag {
fn name(&self) -> &'static str { "customcolor" }
fn process(&self, args: &str) -> TagResult {
// Custom color processing logic
TagResult::Processed
}
}
let mut registry = ExtensionRegistry::new();
registry.register_tag_handler(Box::new(CustomColorTag));Re-exports§
pub use sections::aegisub::create_aegisub_processors;pub use sections::aegisub::AegisubExtradataProcessor;pub use sections::aegisub::AegisubProjectProcessor;pub use tags::advanced::create_advanced_handlers;pub use tags::advanced::BlurEdgesTagHandler;pub use tags::advanced::BorderTagHandler;pub use tags::advanced::ShadowTagHandler;pub use tags::alignment::create_alignment_handlers;pub use tags::alignment::AlignmentTagHandler;pub use tags::alignment::NumpadAlignmentTagHandler;pub use tags::alignment::WrappingStyleTagHandler;pub use tags::animation::create_animation_handlers;pub use tags::animation::FadeTagHandler;pub use tags::animation::SimpleFadeTagHandler;pub use tags::animation::TransformTagHandler;pub use tags::clipping::create_clipping_handlers;pub use tags::clipping::ClipTagHandler;pub use tags::color::create_color_handlers;pub use tags::color::Alpha1TagHandler;pub use tags::color::Alpha2TagHandler;pub use tags::color::Alpha3TagHandler;pub use tags::color::Alpha4TagHandler;pub use tags::color::AlphaTagHandler;pub use tags::color::Color1TagHandler;pub use tags::color::Color2TagHandler;pub use tags::color::Color3TagHandler;pub use tags::color::Color4TagHandler;pub use tags::color::PrimaryColorTagHandler;pub use tags::font::create_font_handlers;pub use tags::font::FontEncodingTagHandler;pub use tags::font::FontNameTagHandler;pub use tags::font::FontSizeTagHandler;pub use tags::formatting::create_formatting_handlers;pub use tags::formatting::BoldTagHandler;pub use tags::formatting::ItalicTagHandler;pub use tags::formatting::StrikeoutTagHandler;pub use tags::formatting::UnderlineTagHandler;pub use tags::karaoke::create_karaoke_handlers;pub use tags::karaoke::BasicKaraokeTagHandler;pub use tags::karaoke::FillKaraokeTagHandler;pub use tags::karaoke::KaraokeTimingTagHandler;pub use tags::karaoke::OutlineKaraokeTagHandler;pub use tags::misc::create_misc_handlers;pub use tags::misc::OriginTagHandler;pub use tags::misc::ResetTagHandler;pub use tags::misc::ShortRotationTagHandler;pub use tags::position::create_position_handlers;pub use tags::position::MoveTagHandler;pub use tags::position::PositionTagHandler;pub use tags::special::create_special_handlers;pub use tags::special::HardLineBreakTagHandler;pub use tags::special::HardSpaceTagHandler;pub use tags::special::SoftLineBreakTagHandler;pub use tags::transform::create_transform_handlers;pub use tags::transform::RotationXTagHandler;pub use tags::transform::RotationYTagHandler;pub use tags::transform::RotationZTagHandler;pub use tags::transform::ScaleXTagHandler;pub use tags::transform::ScaleYTagHandler;pub use tags::transform::ShearXTagHandler;pub use tags::transform::ShearYTagHandler;pub use tags::transform::SpacingTagHandler;
Modules§
- sections
- ASS section processors for the plugin system
- tags
- ASS override tag handlers for the plugin system
Structs§
- Extension
Registry - Central registry for all ASS format extensions
Enums§
- Plugin
Error - Errors that can occur during plugin operations
- Section
Result - Result of section processing operations
- TagResult
- Result of tag processing operations
Traits§
- Section
Processor - Trait for handling custom ASS sections
- TagHandler
- Trait for handling custom ASS override tags
Type Aliases§
- Result
- Result type for plugin operations