[package]
edition = "2024"
rust-version = "1.99.1"
name = "ctl-core"
version = "0.7.2"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A framework for clap programs: typed results, help, and terminal or JSON output"
readme = "README.md"
keywords = [
"clap",
"cli",
"help",
"color",
]
categories = [
"command-line-interface",
"development-tools",
]
license = "MIT"
repository = "https://github.com/victor-software-house/ctl-core"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cap-lints",
"warn",
]
[features]
app = [
"cli",
"view",
"help",
"dep:anyhow",
]
cli = ["dep:clap"]
completion = [
"shell",
"view",
"app",
"dep:clap_complete",
]
default = ["app"]
document = []
fixture = ["dep:tempfile"]
help = [
"cli",
"render",
"clap/usage",
"ctl-term/detect",
]
input = [
"input-yaml",
"validate",
]
input-toml = [
"dep:serde",
"dep:toml",
]
input-yaml = [
"dep:serde",
"dep:serde-saphyr",
"dep:yamled",
]
json = [
"dep:serde",
"dep:serde_json",
]
render = [
"document",
"unsafe-chars",
"dep:ctl-layout",
"dep:ctl-term",
]
schema = [
"json",
"dep:schemars",
]
served = [
"surface-templates",
"validate",
"garde/derive",
"minijinja/deserialization",
]
shell = ["cli"]
shell-init = [
"shell",
"view",
]
surface = ["surface-templates"]
surface-model = [
"cli",
"usage",
]
surface-serde = [
"surface-model",
"dep:serde",
]
surface-templates = [
"surface-serde",
"dep:minijinja",
]
unsafe-chars = ["dep:ctl-text"]
usage = [
"cli",
"clap/usage",
]
validate = ["dep:garde"]
view = [
"render",
"json",
"ctl-term/detect",
]
[lib]
name = "ctl_core"
path = "src/lib.rs"
[[example]]
name = "gallery"
path = "examples/gallery.rs"
required-features = ["view"]
[[example]]
name = "size"
path = "examples/size.rs"
required-features = ["cli"]
[[test]]
name = "clap_display"
path = "tests/clap_display.rs"
[[test]]
name = "cli"
path = "tests/cli/main.rs"
[[test]]
name = "closed_pipe"
path = "tests/closed_pipe.rs"
harness = false
required-features = ["app"]
[[test]]
name = "color_argv"
path = "tests/color_argv.rs"
[[test]]
name = "completion"
path = "tests/completion.rs"
[[test]]
name = "env_flags"
path = "tests/env_flags.rs"
[[test]]
name = "fixture"
path = "tests/fixture.rs"
[[test]]
name = "flag_warnings"
path = "tests/flag_warnings.rs"
[[test]]
name = "format_tokens"
path = "tests/format_tokens.rs"
[[test]]
name = "input"
path = "tests/input.rs"
[[test]]
name = "input_limits"
path = "tests/input_limits.rs"
[[test]]
name = "input_toml"
path = "tests/input_toml.rs"
[[test]]
name = "input_toml_alone"
path = "tests/input_toml_alone.rs"
[[test]]
name = "layout_wrap"
path = "tests/layout_wrap.rs"
[[test]]
name = "mount_raw"
path = "tests/mount_raw.rs"
[[test]]
name = "parity"
path = "tests/parity/main.rs"
[[test]]
name = "parse"
path = "tests/parse.rs"
[[test]]
name = "schema_models"
path = "tests/schema_models.rs"
[[test]]
name = "served"
path = "tests/served.rs"
[[test]]
name = "shell_init"
path = "tests/shell_init.rs"
[[test]]
name = "style_ansi"
path = "tests/style_ansi.rs"
[[test]]
name = "usage_spec"
path = "tests/usage_spec.rs"
[[test]]
name = "view"
path = "tests/view.rs"
[[test]]
name = "width"
path = "tests/width.rs"
[dependencies.anyhow]
version = "1.0.104"
optional = true
[dependencies.clap]
version = "4.6.6"
features = [
"std",
"derive",
"env",
"string",
]
optional = true
default-features = false
[dependencies.clap_complete]
version = "=4.6.11"
features = ["unstable-dynamic"]
optional = true
default-features = false
[dependencies.ctl-layout]
version = "=0.7.2"
optional = true
[dependencies.ctl-term]
version = "=0.7.2"
optional = true
default-features = false
[dependencies.ctl-text]
version = "=0.7.2"
optional = true
[dependencies.document-features]
version = "0.2.12"
[dependencies.garde]
version = "=0.23.0"
optional = true
default-features = false
[dependencies.indoc]
version = "2.0.7"
[dependencies.minijinja]
version = "2.24.0"
features = ["serde"]
optional = true
[dependencies.schemars]
version = "1.2.2"
optional = true
[dependencies.serde]
version = "1.0.229"
features = ["derive"]
optional = true
[dependencies.serde-saphyr]
version = "=0.0.3"
features = [
"deserialize",
"comments",
]
optional = true
default-features = false
package = "vsh-serde-saphyr"
[dependencies.serde_json]
version = "1.0.151"
optional = true
[dependencies.tempfile]
version = "3.27.0"
optional = true
[dependencies.toml]
version = "1.1.8"
features = [
"std",
"parse",
"serde",
]
optional = true
default-features = false
[dependencies.yamled]
version = "=0.0.12"
optional = true
default-features = false
[dev-dependencies.garde]
version = "=0.23.0"
features = ["derive"]
default-features = false
[dev-dependencies.indoc]
version = "2.0.7"
[dev-dependencies.insta]
version = "=1.49.0"
default-features = false
[dev-dependencies.kdl]
version = "=6.7.1"
default-features = false
[dev-dependencies.pty-process]
version = "=0.5.4"
[lints.clippy]
allow_attributes = "deny"
allow_attributes_without_reason = "deny"
as_conversions = "deny"
clone_on_ref_ptr = "deny"
dbg_macro = "deny"
disallowed_macros = "deny"
expect_used = "deny"
map_err_ignore = "deny"
match_wildcard_for_single_variants = "deny"
mod_module_files = "deny"
multiple_crate_versions = "allow"
multiple_unsafe_ops_per_block = "deny"
panic_in_result_fn = "deny"
print_stderr = "deny"
print_stdout = "deny"
rc_buffer = "deny"
string_add = "deny"
todo = "deny"
undocumented_unsafe_blocks = "deny"
unimplemented = "deny"
unwrap_used = "deny"
wildcard_enum_match_arm = "deny"
[lints.clippy.all]
level = "deny"
priority = -1
[lints.clippy.cargo]
level = "deny"
priority = -1
[lints.clippy.pedantic]
level = "deny"
priority = -1
[lints.rust]
missing_debug_implementations = "deny"
missing_docs = "deny"
unreachable_pub = "deny"
unsafe_code = "deny"
unsafe_op_in_unsafe_fn = "deny"
[lints.rust.rust_2018_idioms]
level = "deny"
priority = -1
[lints.rustdoc]
bare_urls = "deny"
broken_intra_doc_links = "deny"
invalid_codeblock_attributes = "deny"
invalid_html_tags = "deny"
invalid_rust_codeblocks = "deny"
missing_crate_level_docs = "deny"
private_intra_doc_links = "deny"
unescaped_backticks = "deny"