# 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.65.0"
name = "winnow"
version = "0.7.15"
build = false
include = [
    "build.rs",
    "src/**/*",
    "Cargo.toml",
    "Cargo.lock",
    "LICENSE*",
    "README.md",
    "examples/**/*",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A byte-oriented, zero-copy, parser combinators library"
readme = "README.md"
keywords = [
    "parser",
    "parser-combinators",
    "parsing",
    "streaming",
    "bit",
]
categories = ["parsing"]
license = "MIT"
repository = "https://github.com/winnow-rs/winnow"

[package.metadata.docs.rs]
features = ["unstable-doc"]
rustdoc-args = ["--generate-link-to-definition"]

[[package.metadata.release.pre-release-replacements]]
file = "CHANGELOG.md"
search = "Unreleased"
replace = "{{version}}"
min = 1

[[package.metadata.release.pre-release-replacements]]
file = "CHANGELOG.md"
search = '\.\.\.HEAD'
replace = "...{{tag_name}}"
exactly = 1

[[package.metadata.release.pre-release-replacements]]
file = "CHANGELOG.md"
search = "ReleaseDate"
replace = "{{date}}"
min = 1

[[package.metadata.release.pre-release-replacements]]
file = "CHANGELOG.md"
search = "<!-- next-header -->"
replace = """
<!-- next-header -->
## [Unreleased] - ReleaseDate
"""
exactly = 1

[[package.metadata.release.pre-release-replacements]]
file = "CHANGELOG.md"
search = "<!-- next-url -->"
replace = """
<!-- next-url -->
[Unreleased]: https://github.com/winnow-rs/winnow/compare/{{tag_name}}...HEAD"""
exactly = 1

[[package.metadata.release.pre-release-replacements]]
file = "src/lib.rs"
search = 'blob/v.+\..+\..+/CHANGELOG.md'
replace = "blob/v{{version}}/CHANGELOG.md"
exactly = 1

[features]
alloc = []
debug = [
    "std",
    "dep:anstream",
    "dep:anstyle",
    "dep:is_terminal_polyfill",
    "dep:terminal_size",
]
default = ["std"]
simd = ["dep:memchr"]
std = [
    "alloc",
    "memchr?/std",
]
unstable-doc = [
    "alloc",
    "std",
    "simd",
    "unstable-recover",
]
unstable-recover = []

[lib]
name = "winnow"
path = "src/lib.rs"

[[example]]
name = "arithmetic"
path = "examples/arithmetic/main.rs"
test = true
required-features = ["alloc"]

[[example]]
name = "c_expression"
path = "examples/c_expression/main.rs"
required-features = ["std"]

[[example]]
name = "css"
path = "examples/css/main.rs"
test = true
required-features = ["alloc"]

[[example]]
name = "custom_error"
path = "examples/custom_error.rs"
test = true
required-features = ["alloc"]

[[example]]
name = "http"
path = "examples/http/main.rs"
required-features = ["alloc"]

[[example]]
name = "ini"
path = "examples/ini/main.rs"
test = true
required-features = ["std"]

[[example]]
name = "iterator"
path = "examples/iterator.rs"

[[example]]
name = "json"
path = "examples/json/main.rs"
test = true
required-features = ["std"]

[[example]]
name = "json_iterator"
path = "examples/json_iterator.rs"
required-features = ["std"]

[[example]]
name = "ndjson"
path = "examples/ndjson/main.rs"
test = true
required-features = ["std"]

[[example]]
name = "s_expression"
path = "examples/s_expression/main.rs"
required-features = ["alloc"]

[[example]]
name = "string"
path = "examples/string/main.rs"
required-features = ["alloc"]

[[bench]]
name = "arithmetic"
path = "examples/arithmetic/bench.rs"
harness = false
required-features = ["alloc"]

[[bench]]
name = "c_expression"
path = "examples/c_expression/bench.rs"
harness = false
required-features = ["std"]

[[bench]]
name = "http"
path = "examples/http/bench.rs"
harness = false
required-features = ["alloc"]

[[bench]]
name = "ini"
path = "examples/ini/bench.rs"
harness = false
required-features = ["std"]

[[bench]]
name = "json"
path = "examples/json/bench.rs"
harness = false
required-features = ["std"]

[dependencies.anstream]
version = "0.6.15"
optional = true

[dependencies.anstyle]
version = "1.0.8"
optional = true

[dependencies.is_terminal_polyfill]
version = "1.48.1"
optional = true

[dependencies.memchr]
version = "2.7"
optional = true
default-features = false

[dependencies.terminal_size]
version = "0.4.3"
optional = true

[dev-dependencies.annotate-snippets]
version = "0.11.4"

[dev-dependencies.anyhow]
version = "1.0.100"

[dev-dependencies.automod]
version = "1.0.15"

[dev-dependencies.circular]
version = "0.3.0"

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

[dev-dependencies.lexopt]
version = "0.3.1"

[dev-dependencies.proptest]
version = "1.6.0"

[dev-dependencies.rustc-hash]
version = "2.1.1"

[dev-dependencies.snapbox]
version = "0.6.21"
features = ["examples"]

[dev-dependencies.term-transcript]
version = "0.2.0"

[lints.clippy]
bool_assert_comparison = "allow"
branches_sharing_code = "allow"
checked_conversions = "warn"
collapsible_else_if = "allow"
create_dir = "warn"
dbg_macro = "warn"
debug_assert_with_mut_call = "warn"
doc_markdown = "warn"
empty_enums = "warn"
enum_glob_use = "warn"
expl_impl_clone_on_copy = "warn"
explicit_deref_methods = "warn"
explicit_into_iter_loop = "warn"
fallible_impl_from = "warn"
filter_map_next = "warn"
flat_map_option = "warn"
float_cmp_const = "warn"
fn_params_excessive_bools = "warn"
from_iter_instead_of_collect = "warn"
if_same_then_else = "allow"
implicit_clone = "warn"
imprecise_flops = "warn"
inconsistent_struct_constructor = "warn"
inefficient_to_string = "warn"
infinite_loop = "warn"
invalid_upcast_comparisons = "warn"
large_digit_groups = "warn"
large_stack_arrays = "warn"
large_types_passed_by_value = "warn"
let_and_return = "allow"
linkedlist = "warn"
lossy_float_literal = "warn"
macro_use_imports = "warn"
mem_forget = "warn"
mutex_integer = "warn"
needless_continue = "allow"
needless_for_each = "warn"
negative_feature_names = "warn"
path_buf_push_overwrite = "warn"
ptr_as_ptr = "warn"
rc_mutex = "warn"
redundant_feature_names = "warn"
ref_option_ref = "warn"
rest_pat_in_fully_bound_structs = "warn"
result_large_err = "allow"
same_functions_in_if_condition = "warn"
semicolon_if_nothing_returned = "warn"
str_to_string = "warn"
string_add = "warn"
string_add_assign = "warn"
string_lit_as_bytes = "warn"
todo = "warn"
trait_duplication_in_bounds = "warn"
uninlined_format_args = "warn"
verbose_file_reads = "warn"
wildcard_imports = "allow"
zero_sized_map_values = "warn"

[lints.rust]
unnameable_types = "warn"
unreachable_pub = "warn"
unsafe_op_in_unsafe_fn = "warn"
unused_lifetimes = "warn"
unused_macro_rules = "warn"

[lints.rust.rust_2018_idioms]
level = "warn"
priority = -1

[profile.bench]
lto = true
codegen-units = 1
debug = 2

[profile.dev]
panic = "abort"

[profile.release]
lto = true
codegen-units = 1
panic = "abort"
