incremental-topo 0.3.1

Data structure to maintain an incremental topological ordering over a collection of values
Documentation

on:
  push:
    branches:
      - main
  pull_request:

name: CI

jobs:
  check:
    name: Check
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v4

      - name: Install stable toolchain
        run: rustup toolchain install stable

      - name: Run cargo test
        run: cargo +stable check

  test:
    name: Test Suite
    needs: check
    runs-on: ubuntu-latest
    strategy:
      matrix:
        rust:
          - stable
          - beta
          - nightly
          - "1.85"  # MSRV
    steps:
      - name: Checkout sources
        uses: actions/checkout@v4

      - name: Install ${{ matrix.rust }} toolchain
        run: rustup toolchain install ${{ matrix.rust }}

      - name: Run cargo test
        run: cargo +${{ matrix.rust }} test

  test_miri:
    name: Test Suite (Miri)
    needs: test
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v4

      - name: Install nightly toolchain
        run: rustup toolchain install --component miri nightly

      - name: Run cargo miri setup
        run: cargo +nightly miri setup

      - name: Run cargo miri test
        run: cargo +nightly miri test

  lints:
    name: Lints
    needs: test
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v4

      - name: Install nightly toolchain
        run: rustup toolchain install --component rustfmt nightly

      - name: Run cargo fmt
        run: cargo +nightly fmt --all -- --check

      - name: Install stable toolchain
        run: rustup toolchain install --component clippy stable

      - name: Run cargo clippy
        run: cargo +stable clippy -- -D warnings