# 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 = "2024"
name = "oxgraph-algo"
version = "0.4.2"
authors = ["oxgraph contributors"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Substrate-agnostic graph algorithms over oxgraph-topology traits."
readme = "README.md"
keywords = [
    "graph",
    "topology",
    "zero-copy",
]
categories = ["data-structures"]
license = "MIT"
repository = "https://github.com/oxgraph/oxgraph"

[features]
alloc = []
default = []
std = ["alloc"]

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

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

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

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

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

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

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

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

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

[dependencies.oxgraph-graph]
version = "0.4.2"

[dependencies.oxgraph-hyper]
version = "0.4.2"

[dependencies.oxgraph-topology]
version = "0.4.2"

[dev-dependencies.arrow-array]
version = "58.3.0"

[dev-dependencies.arrow-schema]
version = "58.2.0"

[dev-dependencies.criterion]
version = "0.8.2"
features = [
    "cargo_bench_support",
    "html_reports",
    "plotters",
]
default-features = false

[dev-dependencies.oxgraph-hyper]
version = "0.4.2"

[dev-dependencies.oxgraph-layout-util]
version = "0.4.2"
default-features = false

[dev-dependencies.oxgraph-property]
version = "0.4.2"

[dev-dependencies.oxgraph-snapshot]
version = "0.4.2"
features = ["alloc"]

[dev-dependencies.proptest]
version = "1.11.0"

[dev-dependencies.zerocopy]
version = "0.8.50"
features = ["derive"]
default-features = false

[lints.clippy]
allow_attributes = "deny"
allow_attributes_without_reason = "deny"
cognitive_complexity = "deny"
excessive_nesting = "deny"
expect_used = "deny"
missing_docs_in_private_items = "deny"
too_many_arguments = "deny"
too_many_lines = "deny"
type_complexity = "deny"
unwrap_used = "deny"

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

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

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

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

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

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

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

[lints.rust.rust_2024_compatibility]
level = "deny"
priority = -1

[lints.rust.unexpected_cfgs]
level = "deny"
priority = 0
check-cfg = ["cfg(kani)"]
