#[cfg(feature = "deletion")]
mod deletion;
#[cfg(feature = "german")]
mod german;
#[cfg(feature = "lower")]
mod lower;
#[cfg(feature = "normalization")]
mod normalization;
#[cfg(feature = "replace")]
mod replace;
#[cfg(feature = "squeeze")]
mod squeeze;
#[cfg(feature = "symbols")]
mod symbols;
#[cfg(feature = "titlecase")]
mod titlecase;
#[cfg(feature = "upper")]
mod upper;
use std::fmt::Debug;
#[cfg(feature = "deletion")]
pub use deletion::Deletion;
#[cfg(feature = "german")]
pub use german::German;
#[cfg(feature = "lower")]
pub use lower::Lower;
#[cfg(feature = "normalization")]
pub use normalization::Normalization;
#[cfg(feature = "replace")]
pub use replace::Replacement;
#[cfg(feature = "squeeze")]
pub use squeeze::Squeeze;
#[cfg(feature = "symbols")]
pub use symbols::{inversion::SymbolsInversion, Symbols};
#[cfg(feature = "titlecase")]
pub use titlecase::Titlecase;
#[cfg(feature = "upper")]
pub use upper::Upper;
use crate::scoping::ScopedView;
pub trait Action: Send + Sync + Debug {
fn act(&self, input: &str) -> String;
fn map<'viewee, 'a>(&self, view: &'a mut ScopedView<'viewee>) -> &'a mut ScopedView<'viewee> {
view.map(&|s| self.act(s))
}
}