version: "3"

tasks:
  build:
    desc: Compile the release binary
    cmds:
      - cargo build --release

  check:
    desc: Check compilation without building
    cmds:
      - cargo check --locked --all-features --workspace

  test:
    desc: Run all tests
    cmds:
      - cargo test --locked --all-features --workspace

  lint:
    desc: Run Clippy (deny warnings)
    cmds:
      - cargo clippy --all-targets --all-features --workspace -- -D warnings

  format:
    desc: Check formatting with rustfmt
    cmds:
      - cargo fmt --all --check

  format:fix:
    desc: Apply rustfmt formatting
    cmds:
      - cargo fmt

  docs:
    desc: Check documentation
    env:
      RUSTDOCFLAGS: -D warnings
    cmds:
      - cargo doc --no-deps --all-features --workspace

  ci:
    desc: Run format, lint, test, check, and docs (full CI suite)
    env:
      RUSTFLAGS: -D warnings
    deps:
      - format
      - lint
      - test
      - check
      - docs
