use common::format_runs::ReplaceFormatPolicy;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct FindTextDto {
pub query: String,
pub case_sensitive: bool,
pub whole_word: bool,
pub diacritic_sensitive: bool,
pub language: String,
pub use_regex: bool,
pub search_backward: bool,
pub start_position: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct FindResultDto {
pub found: bool,
pub position: i64,
pub length: i64,
pub matched_text: String,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct FindAllDto {
pub query: String,
pub case_sensitive: bool,
pub whole_word: bool,
pub diacritic_sensitive: bool,
pub language: String,
pub use_regex: bool,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct FindAllResultDto {
pub positions: Vec<i64>,
pub lengths: Vec<i64>,
pub matched_texts: Vec<String>,
pub count: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct ReplaceTextDto {
pub query: String,
pub replacement: String,
pub case_sensitive: bool,
pub whole_word: bool,
pub diacritic_sensitive: bool,
pub language: String,
pub use_regex: bool,
pub replace_all: bool,
pub format_policy: ReplaceFormatPolicy,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct ReplaceResultDto {
pub replacements_count: i64,
pub skipped_cross_block: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct ReplaceRangesDto {
pub positions: Vec<i64>,
pub lengths: Vec<i64>,
pub replacements: Vec<String>,
pub format_policy: ReplaceFormatPolicy,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct ReplaceRangesResultDto {
pub replacements_count: i64,
pub skipped_cross_block: i64,
pub skipped_overlapping: i64,
}