perforce-cli 0.1.0-alpha.2

A type-safe builder library for spawning Perforce (p4) commands, with compile-time option state isolation and multi-version support.
Documentation
[package]
name = "perforce-cli"
version = "0.1.0-alpha.2"
edition = "2024"
authors = [
  "araraloren <blackcatoverwall@gmail.com>",
]
license = "MPL-2.0"
description = "A type-safe builder library for spawning Perforce (p4) commands, with compile-time option state isolation and multi-version support."
readme = "README.md"
repository = "https://github.com/araraloren/perforce-cli"
documentation = "https://docs.rs/perforce-cli"
keywords = [
  "perforce",
  "p4",
  "cli",
  "version-control",
  "builder",
]
categories = [
  "command-line-interface",
  "development-tools",
]

[dependencies]

[features]

default = ["v2026_1"]

# Enable at most ONE version feature. The internal "ltX" markers
# ("selected version is older than X") are enabled automatically.
v2014_1 = [
  "lt2014_2",
  "lt2015_1",
  "lt2015_2",
  "lt2016_1",
  "lt2017_1",
  "lt2017_2",
  "lt2018_1",
  "lt2018_2",
  "lt2019_1",
  "lt2019_2",
  "lt2020_1",
  "lt2020_2",
  "lt2021_1",
  "lt2021_2",
  "lt2022_1",
  "lt2022_2",
  "lt2023_1",
  "lt2023_2",
  "lt2024_1",
  "lt2024_2",
  "lt2025_1",
  "lt2025_2",
  "lt2026_1",
]
v2014_2 = [
  "lt2015_1",
  "lt2015_2",
  "lt2016_1",
  "lt2017_1",
  "lt2017_2",
  "lt2018_1",
  "lt2018_2",
  "lt2019_1",
  "lt2019_2",
  "lt2020_1",
  "lt2020_2",
  "lt2021_1",
  "lt2021_2",
  "lt2022_1",
  "lt2022_2",
  "lt2023_1",
  "lt2023_2",
  "lt2024_1",
  "lt2024_2",
  "lt2025_1",
  "lt2025_2",
  "lt2026_1",
]
v2015_1 = [
  "lt2015_2",
  "lt2016_1",
  "lt2017_1",
  "lt2017_2",
  "lt2018_1",
  "lt2018_2",
  "lt2019_1",
  "lt2019_2",
  "lt2020_1",
  "lt2020_2",
  "lt2021_1",
  "lt2021_2",
  "lt2022_1",
  "lt2022_2",
  "lt2023_1",
  "lt2023_2",
  "lt2024_1",
  "lt2024_2",
  "lt2025_1",
  "lt2025_2",
  "lt2026_1",
]
v2015_2 = [
  "lt2016_1",
  "lt2017_1",
  "lt2017_2",
  "lt2018_1",
  "lt2018_2",
  "lt2019_1",
  "lt2019_2",
  "lt2020_1",
  "lt2020_2",
  "lt2021_1",
  "lt2021_2",
  "lt2022_1",
  "lt2022_2",
  "lt2023_1",
  "lt2023_2",
  "lt2024_1",
  "lt2024_2",
  "lt2025_1",
  "lt2025_2",
  "lt2026_1",
]
v2016_1 = [
  "lt2017_1",
  "lt2017_2",
  "lt2018_1",
  "lt2018_2",
  "lt2019_1",
  "lt2019_2",
  "lt2020_1",
  "lt2020_2",
  "lt2021_1",
  "lt2021_2",
  "lt2022_1",
  "lt2022_2",
  "lt2023_1",
  "lt2023_2",
  "lt2024_1",
  "lt2024_2",
  "lt2025_1",
  "lt2025_2",
  "lt2026_1",
]
v2016_2 = [
  "lt2017_1",
  "lt2017_2",
  "lt2018_1",
  "lt2018_2",
  "lt2019_1",
  "lt2019_2",
  "lt2020_1",
  "lt2020_2",
  "lt2021_1",
  "lt2021_2",
  "lt2022_1",
  "lt2022_2",
  "lt2023_1",
  "lt2023_2",
  "lt2024_1",
  "lt2024_2",
  "lt2025_1",
  "lt2025_2",
  "lt2026_1",
]
v2017_1 = [
  "lt2017_2",
  "lt2018_1",
  "lt2018_2",
  "lt2019_1",
  "lt2019_2",
  "lt2020_1",
  "lt2020_2",
  "lt2021_1",
  "lt2021_2",
  "lt2022_1",
  "lt2022_2",
  "lt2023_1",
  "lt2023_2",
  "lt2024_1",
  "lt2024_2",
  "lt2025_1",
  "lt2025_2",
  "lt2026_1",
]
v2017_2 = [
  "lt2018_1",
  "lt2018_2",
  "lt2019_1",
  "lt2019_2",
  "lt2020_1",
  "lt2020_2",
  "lt2021_1",
  "lt2021_2",
  "lt2022_1",
  "lt2022_2",
  "lt2023_1",
  "lt2023_2",
  "lt2024_1",
  "lt2024_2",
  "lt2025_1",
  "lt2025_2",
  "lt2026_1",
]
v2018_1 = [
  "lt2018_2",
  "lt2019_1",
  "lt2019_2",
  "lt2020_1",
  "lt2020_2",
  "lt2021_1",
  "lt2021_2",
  "lt2022_1",
  "lt2022_2",
  "lt2023_1",
  "lt2023_2",
  "lt2024_1",
  "lt2024_2",
  "lt2025_1",
  "lt2025_2",
  "lt2026_1",
]
v2018_2 = [
  "lt2019_1",
  "lt2019_2",
  "lt2020_1",
  "lt2020_2",
  "lt2021_1",
  "lt2021_2",
  "lt2022_1",
  "lt2022_2",
  "lt2023_1",
  "lt2023_2",
  "lt2024_1",
  "lt2024_2",
  "lt2025_1",
  "lt2025_2",
  "lt2026_1",
]
v2019_1 = [
  "lt2019_2",
  "lt2020_1",
  "lt2020_2",
  "lt2021_1",
  "lt2021_2",
  "lt2022_1",
  "lt2022_2",
  "lt2023_1",
  "lt2023_2",
  "lt2024_1",
  "lt2024_2",
  "lt2025_1",
  "lt2025_2",
  "lt2026_1",
]
v2019_2 = ["lt2020_1", "lt2020_2", "lt2021_1", "lt2021_2", "lt2022_1", "lt2022_2", "lt2023_1", "lt2023_2", "lt2024_1", "lt2024_2", "lt2025_1", "lt2025_2", "lt2026_1"]
v2020_1 = ["lt2020_2", "lt2021_1", "lt2021_2", "lt2022_1", "lt2022_2", "lt2023_1", "lt2023_2", "lt2024_1", "lt2024_2", "lt2025_1", "lt2025_2", "lt2026_1"]
v2020_2 = ["lt2021_1", "lt2021_2", "lt2022_1", "lt2022_2", "lt2023_1", "lt2023_2", "lt2024_1", "lt2024_2", "lt2025_1", "lt2025_2", "lt2026_1"]
v2021_1 = ["lt2021_2", "lt2022_1", "lt2022_2", "lt2023_1", "lt2023_2", "lt2024_1", "lt2024_2", "lt2025_1", "lt2025_2", "lt2026_1"]
v2021_2 = ["lt2022_1", "lt2022_2", "lt2023_1", "lt2023_2", "lt2024_1", "lt2024_2", "lt2025_1", "lt2025_2", "lt2026_1"]
v2022_1 = ["lt2022_2", "lt2023_1", "lt2023_2", "lt2024_1", "lt2024_2", "lt2025_1", "lt2025_2", "lt2026_1"]
v2022_2 = ["lt2023_1", "lt2023_2", "lt2024_1", "lt2024_2", "lt2025_1", "lt2025_2", "lt2026_1"]
v2023_1 = ["lt2023_2", "lt2024_1", "lt2024_2", "lt2025_1", "lt2025_2", "lt2026_1"]
v2023_2 = ["lt2024_1", "lt2024_2", "lt2025_1", "lt2025_2", "lt2026_1"]
v2024_1 = ["lt2024_2", "lt2025_1", "lt2025_2", "lt2026_1"]
v2024_2 = ["lt2025_1", "lt2025_2", "lt2026_1"]
v2025_1 = ["lt2025_2", "lt2026_1"]
v2025_2 = ["lt2026_1"]
v2026_1 = []

# Internal markers, do not enable directly.
lt2014_2 = []
lt2015_1 = []
lt2015_2 = []
lt2016_1 = []
lt2017_1 = []
lt2017_2 = []
lt2018_1 = []
lt2018_2 = []
lt2019_1 = []
lt2019_2 = []
lt2020_1 = []
lt2020_2 = []
lt2021_1 = []
lt2021_2 = []
lt2022_1 = []
lt2022_2 = []
lt2023_1 = []
lt2023_2 = []
lt2024_1 = []
lt2024_2 = []
lt2025_1 = []
lt2025_2 = []
lt2026_1 = []

[[example]]
name = "print"
doc-scrape-examples = true

[[example]]
name = "diff"
doc-scrape-examples = true