lints.workspace = true

[package]
name = "gix-object"
version = "0.54.0"
description = "Immutable and mutable git objects with decoding and encoding support"
authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
repository = "https://github.com/GitoxideLabs/gitoxide"
license = "MIT OR Apache-2.0"
edition = "2021"
include = ["src/**/*", "LICENSE-*"]
rust-version = "1.82"

[lib]
doctest = false

[[bench]]
name = "decode-objects"
harness = false
path = "./benches/decode_objects.rs"

[[bench]]
name = "edit-tree"
harness = false
path = "./benches/edit_tree.rs"


[features]
## Data structures implement `serde::Serialize` and `serde::Deserialize`.
serde = [
    "dep:serde",
    "bstr/serde",
    "smallvec/serde",
    "gix-hash/serde",
    "gix-actor/serde",
]
## When parsing objects by default errors will only be available on the granularity of success or failure, and with the above flag enabled
## details information about the error location will be collected.
## Use it in applications which expect broken or invalid objects or for debugging purposes. Incorrectly formatted objects aren't at all
## common otherwise.
verbose-object-parsing-errors = ["winnow/std"]

[dependencies]
gix-features = { version = "^0.45.1", path = "../gix-features", features = [
    "progress",
] }
gix-hash = { version = "^0.21.1", path = "../gix-hash" }
gix-hashtable = { version = "^0.11.0", path = "../gix-hashtable" }
gix-validate = { version = "^0.10.1", path = "../gix-validate" }
gix-actor = { version = "^0.37.0", path = "../gix-actor" }
gix-date = { version = "^0.12.0", path = "../gix-date" }
gix-path = { version = "^0.10.22", path = "../gix-path" }
gix-utils = { version = "^0.3.1", path = "../gix-utils" }

itoa = "1.0.1"
thiserror = "2.0.17"
bstr = { version = "1.12.0", default-features = false, features = [
    "std",
    "unicode",
] }
winnow = { version = "0.7.14", features = ["simd"] }
smallvec = { version = "1.15.1", features = ["write"] }
serde = { version = "1.0.114", optional = true, default-features = false, features = [
    "derive",
] }

document-features = { version = "0.2.0", optional = true }

[dev-dependencies]
criterion = "0.8.0"
pretty_assertions = "1.0.0"
gix-testtools = { path = "../tests/tools" }
gix-odb = { path = "../gix-odb" }
termtree = "0.5.1"

[package.metadata.docs.rs]
all-features = true
features = ["document-features"]
