# 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"
name = "docspec"
version = "1.21.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Streaming document conversion: convenience facade re-exporting readers, writers, and event types"
readme = "README.md"
keywords = [
    "document",
    "conversion",
    "streaming",
]
categories = [
    "parsing",
    "encoding",
]
license = "MIT"
repository = "https://github.com/docspec/docspec"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[features]
all-libs = ["json"]
all-readers = [
    "markdown",
    "html",
    "docx",
]
all-writers = [
    "blocknote-writer",
    "oxa-writer",
    "html-writer",
    "pandoc-native-writer",
    "markdown-writer",
]
blocknote = ["blocknote-writer"]
blocknote-writer = ["dep:docspec-blocknote-writer"]
default = [
    "markdown",
    "blocknote",
    "pandoc-native",
]
docx = ["dep:docspec-docx-reader"]
full = [
    "all-readers",
    "all-writers",
    "all-libs",
]
html = ["dep:docspec-html-reader"]
html-writer = ["dep:docspec-html-writer"]
json = ["dep:docspec-json"]
markdown = ["dep:docspec-markdown-reader"]
markdown-writer = ["dep:docspec-markdown-writer"]
oxa = ["oxa-writer"]
oxa-writer = ["dep:docspec-oxa-writer"]
pandoc-native = ["pandoc-native-writer"]
pandoc-native-writer = ["dep:docspec-pandoc-native-writer"]

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

[[test]]
name = "blocknote_markdown_pipeline"
path = "tests/blocknote_markdown_pipeline.rs"

[[test]]
name = "docx_color_to_blocknote"
path = "tests/docx_color_to_blocknote.rs"

[[test]]
name = "factory_reader"
path = "tests/factory_reader.rs"

[[test]]
name = "factory_writer"
path = "tests/factory_writer.rs"

[[test]]
name = "format"
path = "tests/format.rs"

[[test]]
name = "readers_docx"
path = "tests/readers_docx.rs"

[dependencies.docspec-blocknote-writer]
version = "1.21.0"
optional = true

[dependencies.docspec-core]
version = "1.21.0"

[dependencies.docspec-docx-reader]
version = "1.21.0"
optional = true

[dependencies.docspec-html-reader]
version = "1.21.0"
optional = true

[dependencies.docspec-html-writer]
version = "1.21.0"
optional = true

[dependencies.docspec-json]
version = "1.21.0"
optional = true

[dependencies.docspec-markdown-reader]
version = "1.21.0"
optional = true

[dependencies.docspec-markdown-writer]
version = "1.21.0"
optional = true

[dependencies.docspec-oxa-writer]
version = "1.21.0"
optional = true

[dependencies.docspec-pandoc-native-writer]
version = "1.21.0"
optional = true

[dev-dependencies.serde_json]
version = "1"

[dev-dependencies.tempfile]
version = "3"

[lints.clippy]
absolute_paths = "allow"
alloc_instead_of_core = "warn"
allow_attributes = "allow"
allow_attributes_without_reason = "allow"
arbitrary_source_item_ordering = "allow"
assertions_on_result_states = "allow"
big_endian_bytes = "allow"
blanket_clippy_restriction_lints = "allow"
cfg_not_test = "allow"
cognitive_complexity = "deny"
decimal_literal_representation = "allow"
default_numeric_fallback = "allow"
error_impl_error = "allow"
exhaustive_enums = "deny"
exhaustive_structs = "allow"
expect_used = "deny"
fn_params_excessive_bools = "allow"
host_endian_bytes = "allow"
implicit_return = "allow"
integer_division_remainder_used = "allow"
large_enum_variant = "allow"
let_underscore_untyped = "allow"
little_endian_bytes = "allow"
min_ident_chars = "allow"
missing_docs_in_private_items = "allow"
missing_trait_methods = "allow"
mod_module_files = "allow"
module_name_repetitions = "allow"
multiple_crate_versions = "allow"
multiple_inherent_impl = "allow"
non_ascii_literal = "allow"
option_if_let_else = "deny"
partial_pub_fields = "allow"
pattern_type_mismatch = "allow"
print_stderr = "allow"
pub_use = "allow"
pub_with_shorthand = "allow"
question_mark_used = "allow"
redundant_pub_crate = "allow"
semicolon_inside_block = "allow"
shadow_reuse = "allow"
shadow_same = "allow"
single_call_fn = "allow"
single_char_lifetime_names = "allow"
std_instead_of_alloc = "allow"
std_instead_of_core = "warn"
str_to_string = "allow"
unnecessary_wraps = "allow"
unwrap_used = "deny"
use_self = "deny"
wildcard_enum_match_arm = "allow"

[lints.clippy.cargo]
level = "deny"
priority = -1

[lints.clippy.complexity]
level = "deny"
priority = -1

[lints.clippy.pedantic]
level = "deny"
priority = -1

[lints.clippy.perf]
level = "deny"
priority = -1

[lints.clippy.restriction]
level = "deny"
priority = -1

[lints.clippy.style]
level = "deny"
priority = -1

[lints.clippy.suspicious]
level = "deny"
priority = -1

[lints.rust]
dead_code = "deny"
missing_docs = "deny"
unsafe_code = "forbid"
