dap 0.4.1-alpha1

A Rust implementation of the Debug Adapter Protocol
Documentation
use std::fmt::Debug;
use thiserror::Error;

#[derive(Debug, Error)]
pub enum DeserializationError {
  #[error("could not parse value '{value}' to enum variant of '{enum_name}'")]
  StringToEnumParseError { enum_name: String, value: String },
  #[error("Error while deserializing")]
  SerdeError(#[from] serde_json::Error),
  #[error("Error decoding character stream")]
  DecodingError(std::str::Utf8Error),
}

#[derive(Debug, Error)]
pub enum ServerError {
  #[error("I/O error")]
  IoError(std::io::Error),

  #[error("Unknown header: {header}")]
  UnknownHeader { header: String },

  #[error("Parse error")]
  ParseError(#[from] DeserializationError),

  #[error("Could not parse header line '{line}'")]
  HeaderParseError { line: String },

  #[error("Protocol error while reading line '{line}', reason: '{reason}'")]
  ProtocolError { reason: String, line: String },

  #[error("Serialization error")]
  SerializationError(#[from] serde_json::Error),

  #[error("Trying to construct a non-sense response (such as an ACK for a request that requires a response body")]
  ResponseConstructError,

  #[error("Output lock is poisoned")]
  OutputLockError,
}