#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("Invalid surface that does not exist in the dock")]
InvalidSurface,
#[error("Surface has no nodes")]
EmptySurface,
#[error("Invalid node that does not exist in the surface")]
InvalidNode,
#[error("The node exists but is not a leaf")]
NonLeafNode,
#[error("Invalid tab that does not exist in the node")]
InvalidTab,
}
pub type Result<T = (), E = Error> = std::result::Result<T, E>;