diff --git a/src/filter_plugin/skip.rs b/src/filter_plugin/skip.rs index d688515..c34bee9 100644 --- a/src/filter_plugin/skip.rs +++ b/src/filter_plugin/skip.rs @@ -1,6 +1,7 @@ use super::{FilterPlugin, FilterOption}; use std::io::{Result, Read, Write, BufRead}; use crate::common::PIPESIZE; +use crate::services::filter_service::register_filter_plugin; pub struct SkipBytesFilter { remaining: usize, @@ -135,3 +136,10 @@ impl FilterPlugin for SkipLinesFilter { ] } } + +// Register the plugin at module initialization time +#[ctor::ctor] +fn register_skip_filters() { + register_filter_plugin("skip_bytes", || Box::new(SkipBytesFilter::new(0))); + register_filter_plugin("skip_lines", || Box::new(SkipLinesFilter::new(0))); +} diff --git a/src/filter_plugin/tail.rs b/src/filter_plugin/tail.rs index a44a5e3..06285c9 100644 --- a/src/filter_plugin/tail.rs +++ b/src/filter_plugin/tail.rs @@ -2,6 +2,7 @@ use super::{FilterPlugin, FilterOption}; use std::io::{Result, Read, Write, BufRead}; use std::collections::VecDeque; use crate::common::PIPESIZE; +use crate::services::filter_service::register_filter_plugin; pub struct TailBytesFilter { buffer: VecDeque, @@ -150,3 +151,10 @@ impl FilterPlugin for TailLinesFilter { ] } } + +// Register the plugin at module initialization time +#[ctor::ctor] +fn register_tail_filters() { + register_filter_plugin("tail_bytes", || Box::new(TailBytesFilter::new(0))); + register_filter_plugin("tail_lines", || Box::new(TailLinesFilter::new(0))); +}