# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.61"
name = "pest"
version = "2.7.13"
authors = ["Dragoș Tiselice <dragostiselice@gmail.com>"]
description = "The Elegant Parser"
homepage = "https://pest.rs/"
documentation = "https://docs.rs/pest"
readme = "_README.md"
keywords = [
    "pest",
    "parser",
    "peg",
    "grammar",
]
categories = ["parsing"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/pest-parser/pest"

[[bench]]
name = "stack"
harness = false

[dependencies.memchr]
version = "2"
optional = true

[dependencies.miette]
version = "7.2.0"
features = ["fancy"]
optional = true

[dependencies.serde]
version = "1.0.145"
optional = true

[dependencies.serde_json]
version = "1.0.85"
optional = true

[dependencies.thiserror]
version = "1.0.37"
optional = true

[dependencies.ucd-trie]
version = "0.1.5"
default-features = false

[dev-dependencies.criterion]
version = "0.5.1"
features = ["html_reports"]

[dev-dependencies.miette]
version = "7.2.0"
features = ["fancy"]

[features]
const_prec_climber = []
default = [
    "std",
    "memchr",
]
miette-error = [
    "std",
    "pretty-print",
    "dep:miette",
    "dep:thiserror",
]
pretty-print = [
    "dep:serde",
    "dep:serde_json",
]
std = [
    "ucd-trie/std",
    "dep:thiserror",
]
