veilus-human-input 0.1.0

Human-like mouse paths, wheel scrolling and typing rhythm for browser automation: pure functions, parameters supplied by the caller.
Documentation
name: CI

on:
    push:
        branches: [main]
    pull_request:
        branches: [main]

# This repository is public and accepts pull requests from forks, so jobs run
# arbitrary code. They must stay on GitHub-hosted runners — never a
# self-hosted one.
concurrency:
    group: ${{ github.workflow }}-${{ github.ref }}
    cancel-in-progress: true

permissions:
    contents: read

jobs:
    check:
        name: fmt + clippy + test
        runs-on: ubuntu-latest
        timeout-minutes: 15
        steps:
            # Actions are pinned by SHA (tags can move); the tag is in the comment.
            - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5
            # This action picks the toolchain from the ref name, so a SHA pin
            # needs the toolchain spelled out.
            - uses: dtolnay/rust-toolchain@6bed0761d98439e5a578e2877258200ad565ba87 # stable
              with:
                  toolchain: stable
                  components: rustfmt, clippy
            - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2
            - run: cargo fmt --all --check
            - run: cargo clippy --locked --all-targets -- -D warnings
            # --no-fail-fast: report every failing target, not only the first.
            - run: cargo test --locked --no-fail-fast

    msrv:
        name: MSRV from Cargo.toml
        runs-on: ubuntu-latest
        timeout-minutes: 15
        steps:
            - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5
            # Read the declared version instead of repeating it here, so the
            # two can never drift apart.
            - name: Read rust-version
              id: msrv
              run: |
                  ver=$(sed -n 's/^rust-version *= *"\(.*\)"/\1/p' Cargo.toml)
                  test -n "$ver" || { echo "could not read rust-version from Cargo.toml"; exit 1; }
                  echo "version=$ver" >> "$GITHUB_OUTPUT"
            - uses: dtolnay/rust-toolchain@6bed0761d98439e5a578e2877258200ad565ba87 # stable
              with:
                  toolchain: ${{ steps.msrv.outputs.version }}
            - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2
            - run: cargo check --locked --all-targets