cargo-e 0.2.1

e is for Example. A command-line tool for running and exploring source, examples, and binaries from Rust projects. It will run the first example, if no options are given.
Documentation
[package]
name = "cargo-e"
version = "0.2.1"
edition = "2021"
description = "e is for Example. A command-line tool for running and exploring source, examples, and binaries from Rust projects. It will run the first example, if no options are given."
license = "MIT OR Apache-2.0"
repository = "https://github.com/davehorner/cargo-e"
homepage = "https://github.com/davehorner/cargo-e"
documentation = "https://docs.rs/cargo-e"
readme = "README.md"
keywords = ["cargo", "examples", "binaries", "workspace", "rust"]
categories = ["command-line-utilities", "development-tools"]
authors = ["David Horner"]
default-run = "cargo-e"
include = [
    "src/**",
    "../addendum/**",
    "documents/**",
    "Cargo.toml",
    "build.rs",
    "build_docs.rs",
    "build_readme.rs",
    # other files you want to include
]

[features]
default = ["tui", "concurrent", "funny-docs","uses_reqwest","uses_serde","check-version","uses_genai"]
tui = ["crossterm", "ratatui"]

check-version = ["check-version-program-start"]
check-version-program-start = [
#  "dep:e_crate_version_checker",
#  "e_crate_version_checker/uses_reqwest",
#  "e_crate_version_checker/uses_serde"
]

concurrent = ["dep:threadpool"]
equivalent = []  # alias/shortcut to --example; nothing more - other features will not apply.
funny-docs = ["uses_paste"]

uses_reqwest = ["reqwest"]
uses_serde = ["serde", "serde_json"]
uses_paste = ["dep:paste"]
uses_genai = ["e_ai_summarize"]

# equivalent = []  # alias/shortcut to --example; nothing more - other features will not apply.
# funny-docs = ["uses_paste"]
# uses_reqwest=[]
# uses_serde=[]
# uses_semver=["dep:semver"]
# uses_paste = ["dep:paste"]
# semver = ["dep:semver"]

[lib]
name = "cargo_e"
path = "src/lib.rs"
doctest = true

[[bin]]
name = "cargoe_ai_summarize"
path = "src/bin/cargoe_ai_summarize.rs"
required-features = ["uses_genai"]


[[bin]]
name = "cargo-e"
path = "src/main.rs"

[dependencies]
e_crate_version_checker = { path = "../addendum/e_crate_version_checker", version = "0.1.11" }
e_ai_summarize = { path = "../addendum/e_ai_summarize", version= "0.1.0", optional = true }
anyhow = "1.0.97"
clap = { version = "4.5.31", features = ["derive"] }
crossterm = { version = "0.28.1", optional = true }
ctrlc = "3.4.5"
futures = "0.3.31"
paste = { version = "1.0.15", optional = true }
ratatui = { version = "0.29.0", optional = true }
threadpool = { version = "1.8.1", optional = true }
toml = "0.8.20"
tracing = "0.1.41"
semver = { version = "1.0.26", optional = true }
reqwest = { version = "0.12.14", optional = true, features = ["blocking", "json"] }
serde = { version = "1.0", optional = true, features = ["derive"] }
serde_json = { version = "1.0", optional = true }
env_logger = "0.11.7"
log = "0.4.26"
once_cell = "1.21.1"
tokio = "1.44.1"
rustyline = "15.0.0"
which = "7.0.2"

[target.'cfg(unix)'.dependencies]
nix = "0.29.0"

[target.'cfg(windows)'.dependencies]
windows = { version = "0.61.1", features = ["Win32", "Win32_System_Console", "Win32_Foundation", "Win32_System_SystemServices"] }

[dev-dependencies]
assert_cmd = "2.0.16"
genai = "0.1.23"
predicate = "0.1.0"
predicates = "3.1.3"
regex = "1.11.1"
tempfile = "3.18.0"
tokio = "1.44.1"
tracing-subscriber = "0.3.19"
version-sync = "0.9.5"

[build-dependencies]
#walkdir = "2.5.0"
regex = "1.11.1"