ognlib 0.9.0

Some code that is written to practice Rust
Documentation
name: CI

on:
  push:
    paths: ["**.rs", "**.toml", "**/ci.yml"]
  pull_request:
    paths: ["**.rs", "**.toml", "**/ci.yml"]

env:
  CARGO_TERM_COLOR: always
  RUSTFLAGS: "-C target-cpu=native"

jobs:
  ubuntu:
    name: full check on ubuntu (${{ matrix.toolchain }} channel)
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        toolchain: [stable, beta, nightly]
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - name: switch to ${{ matrix.toolchain }} channel and download mold
        run: |
          rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }}
          rustup component add rustfmt clippy
          sudo apt-get update && sudo apt-get install mold
      - name: build
        run: mold -run cargo b -v
      - name: test
        run: mold -run cargo t -v

  macos:
    name: full check on macos (${{ matrix.toolchain }} channel)
    runs-on: macos-15
    strategy:
      fail-fast: false
      matrix:
        toolchain: [stable, beta]
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - name: switch to ${{ matrix.toolchain }} channel
        run: |
          rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }}
          rustup component add rustfmt clippy
      - name: test (no std)
        run: cargo t -v --no-default-features
      - name: test
        run: cargo t -v

  msys2:
    name: full check on windows (msys2 - ${{ matrix.sys }})
    runs-on: windows-latest
    strategy:
      fail-fast: false
      matrix:
        sys: [CLANG64, UCRT64]
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - uses: msys2/setup-msys2@e9898307ac31d1a803454791be09ab9973336e1c # v2.31.1
        with:
          update: true
          msystem: ${{ matrix.sys }}
          pacboy: rust
      - name: build
        run: msys2 -c 'cargo b -v'
      - name: test
        run: msys2 -c 'cargo t -v'