# 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.81"
name = "dvb-si"
version = "7.5.0"
authors = ["Alex Fishlock <alex.fishlock@racingjag.com>"]
build = "build.rs"
exclude = [
    "docs/**",
    "tests/fixtures/**",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "ETSI EN 300 468 DVB Service Information parser + builder. MPEG-2 PSI included."
readme = "README.md"
keywords = [
    "dvb",
    "mpeg",
    "broadcast",
    "si",
    "psi",
]
categories = [
    "parser-implementations",
    "multimedia",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/fishloa/rust-dvb"

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

[features]
chrono = [
    "dep:chrono",
    "dvb-common/chrono",
]
default = [
    "std",
    "chrono",
    "ts",
    "serde",
]
flate2 = [
    "dep:flate2",
    "std",
]
serde = [
    "dep:serde",
    "dep:erased-serde",
    "chrono?/serde",
]
std = [
    "dvb-common/std",
    "chrono?/std",
    "chrono?/clock",
    "thiserror/std",
    "num_enum/std",
    "dep:encoding_rs",
    "bytes?/std",
]
ts = ["dep:bytes"]
yoke = ["dep:yoke"]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[[bench]]
name = "si_hot_paths"
path = "benches/si_hot_paths.rs"
harness = false
required-features = ["ts"]

[dependencies.bytes]
version = "1"
optional = true
default-features = false

[dependencies.chrono]
version = "0.4"
features = ["alloc"]
optional = true
default-features = false

[dependencies.dvb-common]
version = "7.5"
default-features = false

[dependencies.encoding_rs]
version = "0.8"
optional = true

[dependencies.erased-serde]
version = "0.4"
optional = true

[dependencies.flate2]
version = "1"
optional = true

[dependencies.libm]
version = "0.2"

[dependencies.num_enum]
version = "0.7"
default-features = false

[dependencies.serde]
version = "1"
features = ["derive"]
optional = true

[dependencies.thiserror]
version = "2"
default-features = false

[dependencies.yoke]
version = "0.7"
features = ["derive"]
optional = true

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

[dev-dependencies.hex]
version = "0.4"

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