nrelm 0.1.1

An idiomatic GUI library inspired by Elm and based on gtk3-rs
[package]
name = "nrelm"
documentation = "https://docs.rs/nrelm/"

version.workspace = true
authors.workspace = true
edition.workspace = true
rust-version.workspace = true
readme.workspace = true
license.workspace = true
description.workspace = true

homepage.workspace = true
repository.workspace = true

keywords.workspace = true
categories.workspace = true

include = [
    "src/",
    "examples/",
    "benches/",
    "tests/",
    "README.md",
    "LICENSE-MIT",
    "LICENSE-APACHE",
]

[package.metadata.docs.rs]
all-features = true
rustc-args = ["--cfg", "docsrs"]
cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]
# enable unstable features in the documentation
rustdoc-args = ["--cfg", "docsrs"]

[features]
default = ["css", "macros"]
css = ["nrelm-css"]
macros = ["nrelm-macros"]

# All features except docs. This is also used in the CI
all = ["macros"]

[dependencies]
flume.workspace = true
futures.workspace = true
fragile.workspace = true
gtk.workspace = true
once_cell.workspace = true
tokio = { workspace = true, features = ["rt", "rt-multi-thread", "sync"] }

nrelm-css = { workspace = true, optional = true }
nrelm-macros = { workspace = true, optional = true }
tracing.workspace = true

[dev-dependencies]
nrelm-macros.workspace = true

# For the benchmarks
criterion = { workspace = true, default-features = false }

# For the examples
# Path-only dev-dependency (no version): `cargo publish` strips such
# dependencies from the packaged manifest, which breaks the cyclic dev-dependency
# nrelm -> nrelm-components -> nrelm and lets this crate publish before
# nrelm-components.
nrelm-components = { path = "../nrelm-components" }
tokio = { workspace = true, features = [
    "rt",
    "macros",
    "time",
    "rt-multi-thread",
] }
rand.workspace = true
tracker.workspace = true
reqwest.workspace = true
tracing-subscriber.workspace = true
serde = { workspace = true, features = ["derive", "default"] }
serde_json.workspace = true

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

# Make sure that the examples are scraped
[[example]]
name = "simple"
path = "examples/simple.rs"
doc-scrape-examples = true