vizia_core 0.4.0

Core components of vizia
use super::Selection;

#[derive(Debug, Clone)]
pub struct PreeditBackup {
    pub prev_preedit: String,
    pub original_selection: Selection,
}

impl PreeditBackup {
    pub fn new(prev_preedit: String, original_selection: Selection) -> Self {
        Self { prev_preedit, original_selection }
    }

    #[allow(dead_code)]
    pub fn prev_selection(&self) -> Selection {
        let min = self.original_selection.min();
        let len = self.prev_preedit.len();
        let active = min + len;
        Selection { anchor: min, active, h_pos: None }
    }

    pub fn set_prev_preedit(&mut self, preedit: String) {
        self.prev_preedit = preedit;
    }
}