[package]
name = "purrgress"
version = "0.4.22"
edition = "2024"

documentation = "https://docs.rs"

description = "A lightweight, async-ready hierarchical stage machine tailored for P2P networks and game state trees."

license = "MIT"

repository = "https://github.com/Honami333/purrgress"

keywords = ["state-machine", "p2p", "gamedev", "bevy", "async"]

categories = ["game-development", "asynchronous", "network-programming"]

exclude = [
    ".github/*",
    "target/*",
]

[dependencies]
bevy_ecs  = { version = "0.18", optional = true, default-features = false }

petgraph = "0.8.3"
dyn-clone = "1.0"
purrgress-macros = { version = "0.4.1", path = "./purrgress-macros", optional = true  }
cursorvec = "0.2.0"
anyhow = "1.0.103"

[features]
default = []
bevy_ecs = ["dep:bevy_ecs"]
train = ["purrgress-macros/train", "macros"]
animator = ["purrgress-macros/animator", "scrap", "macros"]
scrap = ["purrgress-macros/scrap", "macros"]
macros = ["dep:purrgress-macros"]

[[example]]
name = "basic_test"
path = "examples/basic_test.rs"
required-features = ["scrap"]

[[example]]
name = "pandemonium_fps_test"
path = "examples/pandemonium_fps_test.rs"
required-features = ["animator", "scrap"]

[[example]]
name = "work_under_tets"
path = "examples/work_under_tets.rs"
required-features = ["scrap"]

[[example]]
name = "purr_train"
path = "examples/purr_train.rs"
required-features = ["train"]
