jslt 0.0.6

Everyones favorite xslt but for json
Documentation
use serde_json::Value;
use thiserror::Error;

use crate::parser::Rule;

pub type Result<T, E = JsltError> = std::result::Result<T, E>;

#[derive(Debug, Error)]
pub enum JsltError {
  #[error("UnexpectedInput: {0:?} but got {1:?} ({2})")]
  UnexpectedInput(Rule, Rule, String),
  #[error("UnexpectedContent: for {0:?}")]
  UnexpectedContent(Rule),
  #[error("UnexpectedEnd")]
  UnexpectedEnd,
  #[error("InvalidInput: {0}")]
  InvalidInput(String),
  #[error(transparent)]
  Pest(#[from] Box<pest::error::Error<Rule>>),
  #[error("Expecting Number for ranged access but got {0:?}")]
  RangeNotNumber(Value),
  #[error("Could not fit index into u64")]
  IndexOutOfRange,
  #[error(transparent)]
  Unescape(unescaper::Error),
  #[error(transparent)]
  SerdeJson(#[from] serde_json::Error),
  #[error("{0}")]
  RuntimeError(String),
}