text-document-editing 1.9.3

Undoable text editing use cases for text-document
Documentation
// Generated by Qleany v1.5.1 from feature_dtos.tera

use common::format_runs::ReplaceFormatPolicy;
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertTextDto {
    pub position: i64,
    pub anchor: i64,
    pub text: String,
    /// What the replacement wears where `[anchor, position)` overwrites formatted text — see
    /// [`ReplaceFormatPolicy`]. Only consulted on the selection-replacement path (`position !=
    /// anchor`); a plain caret insert has nothing to choose a policy over. Defaults to
    /// [`ReplaceFormatPolicy::InheritPreceding`], which reproduces this DTO's original
    /// behaviour exactly — every existing caller is unaffected by this field's addition.
    ///
    /// Not declared in `qleany.yaml`'s `InsertTextDto` — it references a hand-written,
    /// cross-cutting enum (`common::format_runs::ReplaceFormatPolicy`, also used by
    /// `document_search`'s replace DTOs) rather than a manifest-local one, so a blind
    /// regeneration of this file would drop it. Re-add it by hand if that ever happens.
    #[serde(default)]
    pub format_policy: ReplaceFormatPolicy,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertTextResultDto {
    pub new_position: i64,
    pub blocks_affected: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct DeleteTextDto {
    pub position: i64,
    pub anchor: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct DeleteTextResultDto {
    pub new_position: i64,
    pub deleted_text: String,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertBlockDto {
    pub position: i64,
    pub anchor: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertBlockResultDto {
    pub new_position: i64,
    pub new_block_id: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertImageDto {
    pub position: i64,
    pub anchor: i64,
    pub image_name: String,
    /// Alternative text describing the image. May be empty.
    pub alt: String,
    pub width: i64,
    pub height: i64,
    /// Render quality hint, 1..=100. `0` is read as "unspecified" and stored as
    /// 100, which is what this use case hardcoded before the field existed.
    pub quality: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertImageResultDto {
    pub new_position: i64,
    pub element_id: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertFrameDto {
    pub position: i64,
    pub anchor: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertFrameResultDto {
    pub frame_id: i64,
}
pub use common::entities::FramePosition;
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct WrapBlocksInFrameDto {
    pub start_block_id: i64,
    pub end_block_id: i64,
    pub position: Option<FramePosition>,
    pub top_margin: Option<i64>,
    pub bottom_margin: Option<i64>,
    pub left_margin: Option<i64>,
    pub right_margin: Option<i64>,
    pub padding: Option<i64>,
    pub border: Option<i64>,
    pub is_blockquote: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct WrapBlocksInFrameResultDto {
    pub new_frame_id: i64,
    pub new_position: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct UnwrapFrameDto {
    pub frame_id: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct UnwrapFrameResultDto {
    pub new_position: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct UnwrapBlockFromFrameDto {
    pub block_id: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct UnwrapBlockFromFrameResultDto {
    pub new_position: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertFormattedTextDto {
    pub position: i64,
    pub anchor: i64,
    pub text: String,
    pub font_family: String,
    pub font_point_size: i64,
    pub font_bold: bool,
    pub font_italic: bool,
    pub font_underline: bool,
    pub font_strikeout: bool,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertFormattedTextResultDto {
    pub new_position: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct CreateListDto {
    pub position: i64,
    pub anchor: i64,
    pub style: ListStyle,
}

pub use common::entities::ListStyle;
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct CreateListResultDto {
    pub list_id: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertListDto {
    pub position: i64,
    pub anchor: i64,
    pub style: ListStyle,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertListResultDto {
    pub list_id: i64,
    pub new_position: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertFragmentDto {
    pub position: i64,
    pub anchor: i64,
    pub fragment_data: String,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertFragmentResultDto {
    pub new_position: i64,
    pub blocks_added: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertHtmlAtPositionDto {
    pub position: i64,
    pub anchor: i64,
    pub html: String,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertHtmlAtPositionResultDto {
    pub new_position: i64,
    pub blocks_added: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertMarkdownAtPositionDto {
    pub position: i64,
    pub anchor: i64,
    pub markdown: String,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertMarkdownAtPositionResultDto {
    pub new_position: i64,
    pub blocks_added: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertDjotAtPositionDto {
    pub position: i64,
    pub anchor: i64,
    pub djot: String,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertDjotAtPositionResultDto {
    pub new_position: i64,
    pub blocks_added: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertTableDto {
    pub position: i64,
    pub anchor: i64,
    pub rows: i64,
    pub columns: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertTableResultDto {
    pub table_id: i64,
    pub new_position: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct RemoveTableDto {
    pub table_id: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertTableRowDto {
    pub table_id: i64,
    pub row_index: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertTableRowResultDto {
    pub new_row_count: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertTableColumnDto {
    pub table_id: i64,
    pub column_index: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct InsertTableColumnResultDto {
    pub new_column_count: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct RemoveTableRowDto {
    pub table_id: i64,
    pub row_index: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct RemoveTableRowResultDto {
    pub new_row_count: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct RemoveTableColumnDto {
    pub table_id: i64,
    pub column_index: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct RemoveTableColumnResultDto {
    pub new_column_count: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct MergeTableCellsDto {
    pub table_id: i64,
    pub start_row: i64,
    pub start_column: i64,
    pub end_row: i64,
    pub end_column: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct MergeTableCellsResultDto {
    pub merged_cell_id: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct SplitTableCellDto {
    pub cell_id: i64,
    pub split_rows: i64,
    pub split_columns: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct SplitTableCellResultDto {
    pub new_cell_ids: Vec<i64>,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct AddBlockToListDto {
    pub block_id: i64,
    pub list_id: i64,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct RemoveBlockFromListDto {
    pub block_id: i64,
}