hypomnesis 0.2.1

External RAM and VRAM measurement for Rust processes (process RSS plus per-process and device-wide GPU memory: Windows DXGI + NVML, Linux NVML, with nvidia-smi fallback).
Documentation
name: CI

on:
  push:
    branches: [main]
  pull_request:

env:
  CARGO_TERM_COLOR: always

jobs:
  check:
    # Cross-platform matrix: hypomnesis has Windows-only `dxgi` and
    # cross-platform `nvml` / `nvidia-smi-fallback` paths; both OSes
    # must build clean on MSRV (1.88) and stable.
    name: ${{ matrix.os }} / ${{ matrix.toolchain }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, windows-latest]
        toolchain: ["1.88", "stable"]
    steps:
      - uses: actions/checkout@v5

      - uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ matrix.toolchain }}
          components: clippy, rustfmt

      - uses: Swatinem/rust-cache@v2

      - name: Check formatting
        run: cargo fmt --check

      - name: Clippy (defaults)
        run: cargo clippy --all-targets -- -D warnings

      - name: Clippy (all features)
        run: cargo clippy --all-targets --all-features -- -D warnings

      - name: Tests
        run: cargo test --all-features

  doc:
    # Separate doc-check job: catches broken intra-doc links early
    # (publish.yml also runs this, but waiting until release is too late).
    name: Doc check
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5

      - uses: dtolnay/rust-toolchain@stable

      - uses: Swatinem/rust-cache@v2

      - name: Doc check
        run: cargo doc --all-features --no-deps
        env:
          RUSTDOCFLAGS: "-D warnings"