# 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.85"
name = "mbr-partition-core"
version = "0.5.1"
build = false
exclude = [
    "fuzz/",
    ".github/",
    ".pre-commit-config.yaml",
    "deny.toml",
    "renovate.json",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Pure-Rust read-only Master Boot Record (MBR) parser — sectors, partition tables, EBR chains, GPT/VBR cross-validation primitives, boot-code and filesystem fingerprinting"
homepage = "https://github.com/SecurityRonin/mbr-partition-forensic"
documentation = "https://docs.rs/mbr-partition-core"
readme = "README.md"
keywords = [
    "forensics",
    "mbr",
    "partition",
    "disk-image",
]
categories = [
    "parser-implementations",
    "filesystem",
]
license = "Apache-2.0"
repository = "https://github.com/SecurityRonin/mbr-partition-forensic"

[features]
default = []
serde = [
    "forensicnomicon/serde",
    "dep:serde",
]
trace = ["dep:tracing"]

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

[dependencies.forensicnomicon]
version = "0.5"

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

[dependencies.thiserror]
version = "2"

[dependencies.tracing]
version = "0.1"
optional = true

[lints.clippy.all]
level = "warn"
priority = -1

[lints.clippy.cast_lossless]
level = "allow"
priority = 1

[lints.clippy.cast_possible_truncation]
level = "allow"
priority = 1

[lints.clippy.cast_possible_wrap]
level = "allow"
priority = 1

[lints.clippy.cast_precision_loss]
level = "allow"
priority = 1

[lints.clippy.cast_sign_loss]
level = "allow"
priority = 1

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

[lints.clippy.expect_used]
level = "deny"
priority = 0

[lints.clippy.missing_errors_doc]
level = "allow"
priority = 1

[lints.clippy.missing_panics_doc]
level = "allow"
priority = 1

[lints.clippy.module_name_repetitions]
level = "allow"
priority = 1

[lints.clippy.must_use_candidate]
level = "allow"
priority = 1

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

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

[lints.clippy.too_many_lines]
level = "allow"
priority = 1

[lints.clippy.unnested_or_patterns]
level = "allow"
priority = 1

[lints.clippy.unreadable_literal]
level = "allow"
priority = 1

[lints.clippy.unwrap_used]
level = "deny"
priority = 0

[lints.rust]
unsafe_code = "forbid"
