use super::Buffer;
use crate::{
Result,
error::EdError,
};
pub fn verify_index(
buffer: &Buffer,
index: usize,
) -> Result<()> {
if index > buffer.len() { return Err(
EdError::IndexTooBig{index: index, buffer_len: buffer.len()}
); }
Ok(())
}
pub fn verify_line(
buffer: &Buffer,
index: usize,
) -> Result<()> {
if index < 1 { Err(
EdError::Line0Invalid
)}
else if index > buffer.len() { Err(
EdError::IndexTooBig{index: index, buffer_len: buffer.len()}
)}
else { Ok(()) }
}
pub fn verify_selection(
buffer: &Buffer,
selection: (usize, usize),
) -> Result<()> {
if selection.0 == 0 { return Err(
EdError::Line0Invalid
); }
if selection.0 > selection.1 { return Err(
EdError::SelectionEmpty(selection)
); }
if selection.1 > buffer.len() { return Err(
EdError::IndexTooBig{index: selection.1, buffer_len: buffer.len()}
); }
Ok(())
}