use std::io;
use thiserror::Error;
pub type Result<T> = std::result::Result<T, VncError>;
#[derive(Debug, Error)]
pub enum VncError {
#[error("I/O error: {0}")]
Io(#[from] io::Error),
#[error("Protocol error: {0}")]
Protocol(String),
#[error("Authentication failed")]
AuthenticationFailed,
#[error("Invalid pixel format")]
InvalidPixelFormat,
#[error("Encoding error: {0}")]
Encoding(String),
#[error("Invalid operation: {0}")]
InvalidOperation(String),
#[error("Connection closed")]
ConnectionClosed,
}