grabapl 0.0.4

A library for graph-based programming languages, with pluggable type systems and a focus on visible intermediate states.
Documentation
[package]
name = "grabapl"
version = "0.0.4"
edition = "2024"
license = { workspace = true }
authors = { workspace = true }
description = "A library for graph-based programming languages, with pluggable type systems and a focus on visible intermediate states."
categories = ["compilers", "development-tools"]
documentation = "https://docs.rs/grabapl"
exclude = ["docs"]

[lib]
name = "grabapl"

[dependencies]
#petgraph = { git = "https://github.com/petgraph/petgraph.git", rev = "e2b28e59d0c37a8db9037997e84cc483ca94afc9"}
#petgraph = { path = "../playground/petgraph", features = ["serde-1"] }
# TODO: this will break on crates.io since crates.io petgraph does not have the necessary features we need
petgraph = { git = "https://github.com/skius/petgraph.git", branch = "partial_isos", features = ["serde-1"], version = "0.0.0", package = "grabapl_temp_petgraph_crate_not_namesquatting_i_promise" }
derive_more = { version = "2.0.1", features = ["from", "into", "try_from", "try_into", "debug", "add", "add_assign"]}
thiserror = "2.0.12"
internment = "0.8.6"
log_crate = { version = "0.4", optional = true, package = "log" }
error-stack = "0.5.0"
serde = { version = "1.0", features = ["derive", "std"], optional = true }
serde_json_any_key = { version = "2.0.0", optional = true }

[dev-dependencies]
criterion = "0.5.1"
proptest = "1.7.0"
#proptest = { path = "../playground/proptest/proptest" }
#proptest = { git = "https://github.com/matthew-russo/proptest", branch = "269-improve-shrinking-prop-flat-map"}
rand = "0.9.1"
test-log = { version = "0.2", features = ["unstable"] }
serde_json = "1.0"
syntax = { path = "../syntax", package = "grabapl_syntax" } # not using the workspace dep to avoid cyclic dependencies (the missing version from this line fixes this)
chumsky = "0.10.1"

[features]
default = ["log", "serde"]
log = ["dep:log_crate"]
serde = ["dep:serde", "dep:serde_json_any_key"]

[[bench]]
name = "isomorphism_find_single_node"
harness = false

[[bench]]
name = "isomorphism_2"
harness = false

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