[package]
name = "grust-graph"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
description = "A backend-neutral property graph facade for Rust."
keywords.workspace = true
categories.workspace = true
readme = "../../README.md"

[lib]
name = "grust"

[features]
default = []
cocoindex = ["dep:grust-cocoindex"]
falkor = ["dep:grust-falkor"]
helix = ["dep:grust-helix"]
lancedb = ["dep:grust-lancedb"]
memory = ["dep:grust-memory"]
pggraph = ["dep:grust-pggraph"]
sail = ["dep:grust-sail"]
surreal = ["dep:grust-surreal"]
typed-garde = ["grust-core/typed-garde"]
typed-zod-rs = ["typed-garde", "grust-core/typed-zod-rs"]

[dependencies]
grust-core = { version = "0.6.6", path = "../grust-core" }
grust-cocoindex = { version = "0.6.6", path = "../grust-cocoindex", optional = true }
grust-falkor = { version = "0.6.6", path = "../grust-falkor", optional = true }
grust-helix = { version = "0.6.6", path = "../grust-helix", optional = true }
grust-lancedb = { version = "0.6.6", path = "../grust-lancedb", optional = true }
grust-memory = { version = "0.6.6", path = "../grust-memory", optional = true }
grust-pggraph = { version = "0.6.6", path = "../grust-pggraph", optional = true }
grust-sail = { version = "0.6.6", path = "../grust-sail", optional = true }
grust-surreal = { version = "0.6.6", path = "../grust-surreal", optional = true }

[dev-dependencies]
garde = { workspace = true, features = ["derive"] }
serde.workspace = true
serde_json.workspace = true
zod-rs.workspace = true

[[example]]
name = "typed_graph_garde"
required-features = ["typed-garde"]

[[example]]
name = "typed_graph_garde_mixed"
required-features = ["typed-garde"]

[[example]]
name = "typed_graph_zod_garde"
required-features = ["typed-zod-rs"]

[[example]]
name = "typed_graph_zod_garde_errors"
required-features = ["typed-zod-rs"]
