1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//! Redaction options.
// Copyright (c) 2026 Innovation Trigger B.V.
//
// PDFluent is available under two licences, at your option: the GNU AGPLv3, or
// the PDFluent Commercial Licence. See the LICENSE file in this repository --
// that file travels with the copy you received, which a URL does not.
/// Options for redaction operations.
#[derive(Debug, Clone, Default)]
#[non_exhaustive]
pub struct RedactOptions {
pub(crate) case_sensitive: bool,
pub(crate) regex: bool,
pub(crate) on_pages: Option<Vec<usize>>,
}
impl RedactOptions {
/// New default options (case-insensitive, literal matching, all pages).
pub fn new() -> Self {
Self::default()
}
/// Enable case-sensitive matching.
pub fn case_sensitive(mut self, v: bool) -> Self {
self.case_sensitive = v;
self
}
/// Treat the target as a regex pattern.
pub fn regex(mut self, v: bool) -> Self {
self.regex = v;
self
}
/// Limit redaction to the specified pages (1-based). Without this
/// option, all pages are scanned.
pub fn on_pages(mut self, pages: &[usize]) -> Self {
self.on_pages = Some(pages.to_vec());
self
}
}