[workspace] resolver = "2" members = ["fuzz"] [workspace.package] repository = "https://github.com/winnow-rs/winnow" license = "MIT" edition = "2021" rust-version = "1.65.0" # MSRV include = [ "build.rs", "src/**/*", "Cargo.toml", "Cargo.lock", "LICENSE*", "README.md", "benches/**/*", "examples/**/*" ] [workspace.lints.rust] rust_2018_idioms = { level = "warn", priority = -1 } unreachable_pub = "warn" unsafe_op_in_unsafe_fn = "warn" unused_lifetimes = "warn" unused_macro_rules = "warn" [workspace.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_enum = "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" # sometimes good to name what you are returning linkedlist = "warn" lossy_float_literal = "warn" macro_use_imports = "warn" mem_forget = "warn" mutex_integer = "warn" needless_continue = "warn" 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" same_functions_in_if_condition = "warn" # self_named_module_files = "warn" # false-positives semicolon_if_nothing_returned = "warn" str_to_string = "warn" string_add = "warn" string_add_assign = "warn" string_lit_as_bytes = "warn" string_to_string = "warn" todo = "warn" trait_duplication_in_bounds = "warn" uninlined_format_args = "warn" verbose_file_reads = "warn" wildcard_imports = "allow" zero_sized_map_values = "warn" [package] name = "winnow" version = "0.6.20" description = "A byte-oriented, zero-copy, parser combinators library" categories = ["parsing"] keywords = ["parser", "parser-combinators", "parsing", "streaming", "bit"] autoexamples = false repository.workspace = true license.workspace = true edition.workspace = true rust-version.workspace = true include.workspace = true [package.metadata.docs.rs] features = ["unstable-doc"] rustdoc-args = ["--cfg", "docsrs"] cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"] [package.metadata.release] pre-release-replacements = [ {file="CHANGELOG.md", search="Unreleased", replace="{{version}}", min=1}, {file="CHANGELOG.md", search="\\.\\.\\.HEAD", replace="...{{tag_name}}", exactly=1}, {file="CHANGELOG.md", search="ReleaseDate", replace="{{date}}", min=1}, {file="CHANGELOG.md", search="", replace="\n## [Unreleased] - ReleaseDate\n", exactly=1}, {file="CHANGELOG.md", search="", replace="\n[Unreleased]: https://github.com/winnow-rs/winnow/compare/{{tag_name}}...HEAD", exactly=1}, {file="src/lib.rs", search="blob/v.+\\..+\\..+/CHANGELOG.md", replace="blob/v{{version}}/CHANGELOG.md", exactly=1}, ] [features] default = ["std"] alloc = [] std = ["alloc", "memchr?/std"] simd = ["dep:memchr"] debug = ["std", "dep:anstream", "dep:anstyle", "dep:is-terminal", "dep:terminal_size"] unstable-recover = [] unstable-doc = ["alloc", "std", "simd", "unstable-recover"] [dependencies] anstream = { version = "0.3.2", optional = true } anstyle = { version = "1.0.1", optional = true } is-terminal = { version = "0.4.9", optional = true } memchr = { version = "2.5", optional = true, default-features = false } terminal_size = { version = "0.4.0", optional = true } [dev-dependencies] doc-comment = "0.3" proptest = "1.2.0" criterion = "0.5.1" lexopt = "0.3.0" term-transcript = "0.2.0" snapbox = { version = "0.6.0", features = ["examples"] } circular = "0.3.0" rustc-hash = "1.1.0" automod = "1.0.14" annotate-snippets = "0.11.3" anyhow = "1.0.86" [profile.bench] debug = true lto = true codegen-units = 1 [[example]] name = "arithmetic" test = true required-features = ["alloc"] [[example]] name = "css" test = true required-features = ["alloc"] [[example]] name = "custom_error" test = true required-features = ["alloc"] [[example]] name = "http" required-features = ["alloc"] [[example]] name = "ini" test = true required-features = ["std"] [[example]] name = "json" test = true required-features = ["std"] [[example]] name = "ndjson" test = true required-features = ["std"] [[example]] name = "json_iterator" required-features = ["std"] [[example]] name = "iterator" [[example]] name = "s_expression" required-features = ["alloc"] [[example]] name = "string" required-features = ["alloc"] [[bench]] name = "arithmetic" path = "examples/arithmetic/bench.rs" harness = false required-features = ["alloc"] [[bench]] name = "contains_token" harness = false [[bench]] name = "find_slice" harness = false [[bench]] name = "iter" harness = false [[bench]] name = "next_slice" harness = false [[bench]] name = "number" harness = false [[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"] [lints] workspace = true