pathfinding 4.15.0

Pathfinding, flow, and graph algorithms
Documentation
# 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"
rust-version = "1.87.0"
name = "pathfinding"
version = "4.15.0"
authors = ["Samuel Tardieu <sam@rfc1149.net>"]
build = false
include = [
    "src/**/*",
    "tests/**/*",
    "benches/**/*",
    "examples/**/*",
    "Cargo.toml",
    "README.md",
    "GRAPH_GUIDE.md",
    "CHANGELOG.md",
    "LICENSE-APACHE",
    "LICENSE-MIT",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Pathfinding, flow, and graph algorithms"
homepage = "https://rfc1149.net/devel/pathfinding.html"
documentation = "https://docs.rs/pathfinding/"
readme = "README.md"
keywords = [
    "shortest-path",
    "astar",
    "dijkstra",
    "flow",
    "graph",
]
categories = ["algorithms"]
license = "Apache-2.0/MIT"
repository = "https://github.com/evenfurther/pathfinding"

[package.metadata.release]
sign-commit = true
sign-tag = true

[[package.metadata.release.pre-release-replacements]]
file = "README.md"
search = 'pathfinding = ".*"'
replace = 'pathfinding = "{{version}}"'
exactly = 1

[[package.metadata.release.pre-release-replacements]]
file = "CHANGELOG.md"
search = 'n\.n\.n'
replace = "{{tag_name}}"
exactly = 1

[features]
iai = []

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

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

[[example]]
name = "graph-adjacency-list"
path = "examples/graph-adjacency-list.rs"

[[example]]
name = "graph-adjacency-matrix"
path = "examples/graph-adjacency-matrix.rs"

[[example]]
name = "graph-struct"
path = "examples/graph-struct.rs"

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

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

[[example]]
name = "sliding-puzzle"
path = "examples/sliding-puzzle.rs"

[[test]]
name = "aoc-2017-12-12"
path = "tests/aoc-2017-12-12.rs"

[[test]]
name = "aoc-2020-10"
path = "tests/aoc-2020-10.rs"

[[test]]
name = "aoc-2021-12"
path = "tests/aoc-2021-12.rs"

[[test]]
name = "aoc-2023-17"
path = "tests/aoc-2023-17.rs"

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

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

[[test]]
name = "codejam-2017-a"
path = "tests/codejam-2017-a.rs"

[[test]]
name = "connected-components"
path = "tests/connected-components.rs"

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

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

[[test]]
name = "dfs-reach"
path = "tests/dfs-reach.rs"

[[test]]
name = "dijkstra-all"
path = "tests/dijkstra-all.rs"

[[test]]
name = "dijkstra-reach"
path = "tests/dijkstra-reach.rs"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[[test]]
name = "yen-issue-507"
path = "tests/yen-issue-507.rs"

[[bench]]
name = "algos"
path = "benches/algos.rs"
harness = false

[[bench]]
name = "algos-fill"
path = "benches/algos-fill.rs"
harness = false

[[bench]]
name = "edmondskarp"
path = "benches/edmondskarp.rs"
harness = false

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

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

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

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

[[bench]]
name = "kuhn_munkres"
path = "benches/kuhn_munkres.rs"
harness = false

[[bench]]
name = "matrices"
path = "benches/matrices.rs"
harness = false

[[bench]]
name = "movingai"
path = "benches/movingai.rs"
harness = false

[[bench]]
name = "separate_components"
path = "benches/separate_components.rs"
harness = false

[dependencies.deprecate-until]
version = "1.0.0"

[dependencies.indexmap]
version = "2.11.4"

[dependencies.integer-sqrt]
version = "0.1.5"

[dependencies.num-traits]
version = "0.2.19"

[dependencies.rustc-hash]
version = "2.1.1"

[dependencies.thiserror]
version = "2.0.17"

[dev-dependencies.criterion]
version = "0.8"

[dev-dependencies.iai-callgrind]
version = "0.16.1"

[dev-dependencies.itertools]
version = "0.14.0"

[dev-dependencies.movingai]
version = "2.1.0"

[dev-dependencies.noisy_float]
version = "0.2.0"

[dev-dependencies.rand]
version = "0.10.0"

[dev-dependencies.rand_xorshift]
version = "0.5.0"

[dev-dependencies.regex]
version = "1.11.3"

[dev-dependencies.trybuild]
version = "1.0.111"

[dev-dependencies.version_check]
version = "0.9.5"

[lints.clippy]
allow_attributes = "deny"
missing_const_for_fn = "deny"
pedantic = "deny"
redundant_clone = "deny"

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

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