diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-06-21 22:45:28 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-06-21 22:45:28 +0800 |
| commit | c6885ae2312a1be589e945129bdd9d268f14c370 (patch) | |
| tree | 919e0fe49331b533de312a39548f17b133ef4975 /src/post_proc.rs | |
| parent | 291c01fd98d44e42bb0a65468e3b6cee3dc25044 (diff) | |
feat: replace `--pinyin` flag with generic `--post="+pinyin"` option
Diffstat (limited to 'src/post_proc.rs')
| -rw-r--r-- | src/post_proc.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/post_proc.rs b/src/post_proc.rs new file mode 100644 index 0000000..d8dfa74 --- /dev/null +++ b/src/post_proc.rs @@ -0,0 +1,25 @@ +mod r#trait; +pub use r#trait::*; + +pub mod pinyin; + +/// Look up a processor by name and run it. +pub fn run(text: &str, name: &str, args: &[&str]) -> Option<String> { + macro_rules! match_processor { + ($($processor:ty),+ $(,)?) => { + match name { + $( + n if n == <$processor as TextPostProcesser>::processer_name() => { + Some(<$processor as TextPostProcesser>::process(args, text)) + } + )+ + _ => None, + } + }; + } + + match_processor!( + // +pinyin + crate::post_proc::pinyin::PinyinPostProcesser, + ) +} |
