# 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"
version = "0.4.4"
authors = ["oxgraph contributors"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "General-purpose, zero-copy graph and hypergraph engine for Rust."
readme = "README.md"
keywords = [
    "graph",
    "topology",
    "zero-copy",
    "no-std",
    "csr",
]
categories = [
    "data-structures",
    "no-std",
]
license = "MIT"
repository = "https://github.com/oxgraph/oxgraph"

[features]
algo = [
    "topology",
    "dep:oxgraph-algo",
]
algo-alloc = [
    "algo",
    "oxgraph-algo?/alloc",
]
algo-std = [
    "algo-alloc",
    "oxgraph-algo?/std",
]
csc = ["dep:oxgraph-csc"]
csr = [
    "graph",
    "layout",
    "dep:oxgraph-csr",
]
db = ["dep:oxgraph-db"]
default = []
full = [
    "algo-std",
    "csr",
    "db",
    "graph-property-arrow",
    "hyper-bcsr",
    "hyper-property-arrow",
    "postgres",
    "snapshot-alloc",
]
graph = [
    "topology",
    "dep:oxgraph-graph",
]
graph-build = [
    "graph",
    "csr",
    "layout",
    "snapshot-alloc",
    "oxgraph-csr/build",
]
graph-property-arrow = [
    "graph-build",
    "property-arrow",
    "oxgraph-csr/build-property-arrow",
]
hyper = [
    "topology",
    "dep:oxgraph-hyper",
]
hyper-bcsr = [
    "hyper",
    "layout",
    "dep:oxgraph-hyper-bcsr",
]
hyper-build = [
    "hyper",
    "hyper-bcsr",
    "layout",
    "snapshot-alloc",
    "oxgraph-hyper-bcsr/build",
]
hyper-property-arrow = [
    "hyper-build",
    "property-arrow",
    "oxgraph-hyper-bcsr/build-property-arrow",
]
layout = ["dep:oxgraph-layout-util"]
postgres = [
    "dep:oxgraph-postgres",
    "csc",
]
property-arrow = [
    "topology",
    "dep:oxgraph-property",
]
snapshot = ["dep:oxgraph-snapshot"]
snapshot-alloc = [
    "snapshot",
    "oxgraph-snapshot?/alloc",
]
topology = [
    "layout",
    "dep:oxgraph-topology",
]

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

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

[dependencies.oxgraph-algo]
version = "0.4.4"
optional = true
default-features = false

[dependencies.oxgraph-csc]
version = "0.4.4"
optional = true

[dependencies.oxgraph-csr]
version = "0.4.4"
optional = true

[dependencies.oxgraph-db]
version = "0.4.4"
optional = true

[dependencies.oxgraph-graph]
version = "0.4.4"
optional = true

[dependencies.oxgraph-hyper]
version = "0.4.4"
optional = true

[dependencies.oxgraph-hyper-bcsr]
version = "0.4.4"
optional = true

[dependencies.oxgraph-layout-util]
version = "0.4.4"
optional = true
default-features = false

[dependencies.oxgraph-postgres]
version = "0.4.4"
optional = true

[dependencies.oxgraph-property]
version = "0.4.4"
optional = true

[dependencies.oxgraph-snapshot]
version = "0.4.4"
optional = true
default-features = false

[dependencies.oxgraph-topology]
version = "0.4.4"
optional = true

[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)"]
