grid 1.0.1

Dynamic generic 2D data structure.
Documentation
name: Rust

on:
  workflow_dispatch:
  push:
    branches: ["master"]
    tags:
      - "v*"
  pull_request:
    branches: ["master"]

env:
  CARGO_TERM_COLOR: always

jobs:
  check-links:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@main
      - name: Markup Link Checker (mlc)
        uses: becheran/mlc@v0.19.1
  formatting:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          components: rustfmt, clippy
      - uses: actions-rust-lang/rustfmt@v1
      - run: cargo clippy --all-targets --all-features
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Miri
        run: |

          rustup toolchain install nightly --component miri
          rustup override set nightly
          cargo miri setup
      - name: Run test
        run: cargo miri test --verbose
      - name: Run test release
        run: cargo miri test --verbose --release
  test-no-default:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run test
        run: cargo test --verbose --no-default-features
      - name: Run test release
        run: cargo test --verbose --release --no-default-features
  release:
    runs-on: ubuntu-latest
    if: startsWith(github.ref, 'refs/tags/')
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Release
        uses: softprops/action-gh-release@v2
        with:
          generate_release_notes: true