[package] authors = [ "Joining7943 ", "Brook Heisler ", ] categories.workspace = true description = "High-precision and consistent benchmarking framework/harness for Rust" edition.workspace = true homepage.workspace = true keywords.workspace = true license.workspace = true name = "iai-callgrind" readme = "../README.md" repository.workspace = true rust-version.workspace = true version.workspace = true [features] benchmark = [ "iai-callgrind-runner", "dep:bincode", "dep:iai-callgrind-macros", "dep:derive_more", ] client_requests = ["client_requests_defs"] client_requests_defs = [ "dep:cty", "dep:cfg-if", "dep:bindgen", "dep:cc", "dep:regex", "dep:version-compare", "dep:strum", ] default = ["benchmark"] ui_tests = [] # Looks like a bug to have to create a feature instead of # `dep:iai-callgrind-runner` in the benchmark feature directly iai-callgrind-runner = ["dep:iai-callgrind-runner"] [build-dependencies] bindgen = { workspace = true, optional = true } cc = { workspace = true, optional = true } regex = { workspace = true, optional = true } strum = { workspace = true, optional = true, features = ["derive"] } version-compare = { workspace = true, optional = true } [package.metadata.docs.rs] features = ["client_requests_defs"] rustdoc-args = ["--cfg", "docsrs"] [dependencies] bincode = { workspace = true, optional = true } cfg-if = { workspace = true, optional = true } cty = { workspace = true, optional = true } # We use the `derive_more` crate anyway in `iai-callgrind-macros`, so there's no # harm in using it for this small AsRef derive macro derive_more = { workspace = true, default-features = false, features = [ "as_ref", ], optional = true } iai-callgrind-macros = { path = "../iai-callgrind-macros", version = "=0.5.0", optional = true } iai-callgrind-runner = { path = "../iai-callgrind-runner", version = "=0.14.0", default-features = false, features = [ "api", ], optional = true } [dev-dependencies] fs_extra = { workspace = true } rstest = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } serial_test = { workspace = true } trybuild = { workspace = true }