query-string-builder 0.7.1

A query string builder for percent encoding key-value pairs
Documentation
version: '3'

vars:
  MSRV: "1.87"

tasks:
  default:
    cmds:
      - task --list --sort=none
    silent: true

  build:
    desc: Build the crate (all targets)
    preconditions:
      - sh: command -v cargo
        msg: "cargo not found — install Rust from https://rustup.rs/"
    cmds:
      - cargo build --all-targets

  test:
    desc: Run unit and doc tests
    preconditions:
      - sh: command -v cargo
        msg: "cargo not found — install Rust from https://rustup.rs/"
    cmds:
      - cargo test {{.CLI_ARGS}}

  fmt:
    desc: Format code
    aliases: [format]
    preconditions:
      - sh: command -v cargo
        msg: "cargo not found — install Rust from https://rustup.rs/"
    cmds:
      - cargo fmt --all

  lint:
    desc: Run clippy (deny warnings) and check formatting
    preconditions:
      - sh: command -v cargo
        msg: "cargo not found — install Rust from https://rustup.rs/"
    cmds:
      - cargo fmt --all -- --check
      - cargo clippy --all-targets -- -D warnings

  lint:fix:
    desc: Apply clippy fixes and format
    aliases: [fix]
    preconditions:
      - sh: command -v cargo
        msg: "cargo not found — install Rust from https://rustup.rs/"
    cmds:
      - cargo clippy --all-targets --fix --allow-dirty --allow-staged
      - cargo fmt --all

  check:
    desc: All static checks (fmt + clippy)
    cmds:
      - task: lint

  msrv:
    desc: Verify the crate builds on the declared MSRV ({{.MSRV}})
    preconditions:
      - sh: rustup toolchain list | grep -q "{{.MSRV}}"
        msg: "Rust {{.MSRV}} toolchain required — rustup toolchain install {{.MSRV}}"
    cmds:
      - cargo +{{.MSRV}} check

  bench:
    desc: Run criterion benchmarks
    preconditions:
      - sh: command -v cargo
        msg: "cargo not found — install Rust from https://rustup.rs/"
    cmds:
      - cargo bench {{.CLI_ARGS}}

  docs:
    desc: Build documentation
    preconditions:
      - sh: command -v cargo
        msg: "cargo not found — install Rust from https://rustup.rs/"
    cmds:
      - cargo doc --no-deps

  docs:open:
    desc: Build and open documentation
    cmds:
      - cargo doc --no-deps --open

  ci:
    desc: Full CI sequence (checks + tests + docs)
    cmds:
      - task: check
      - task: test
      - task: docs

  clean:
    desc: Remove build output
    status:
      - test ! -d target
    cmds:
      - cargo clean