use std::collections::{HashMap, HashSet};
use ratatui::widgets::{ListState, TableState};
use serde::{Deserialize, Serialize};
use tui_input::Input;
use crate::hex::comment::Comment;
#[derive(Default, Debug)]
pub struct Point {
pub x: usize,
pub y: usize,
}
#[derive(Default, Debug, Serialize, Deserialize)]
pub struct HexView {
#[serde(skip)]
pub ascii_state: TableState,
pub bookmarks: Vec<usize>,
#[serde(skip)]
pub changed_bytes: HashMap<usize, String>,
#[serde(skip)]
pub changed_history: Vec<usize>,
#[serde(skip)]
pub comment_input: Input,
pub comment_name_list: Vec<Comment>,
pub comments: HashMap<usize, String>,
#[serde(skip)]
pub cursor: Point,
#[serde(skip)]
pub editing_hex: bool,
#[serde(skip)]
pub highlights: HashSet<u8>, #[serde(skip)]
pub last_visited_offset: usize,
#[serde(skip)]
pub names_list_state: ListState,
#[serde(skip)]
pub names_regex_input: Input,
#[serde(skip)]
pub names_regex: String,
#[serde(skip)]
pub offset_state: TableState,
#[serde(skip)]
pub offset: usize,
#[serde(skip)]
pub search: crate::hex::search::Search,
#[serde(skip)]
pub selection: crate::hex::selection::Selection,
#[serde(skip)]
pub strings_regex_input: Input,
#[serde(skip)]
pub table_state: TableState,
}