tiger-lib 1.17.0

Library used by the tools ck3-tiger, vic3-tiger, and imperator-tiger. This library holds the bulk of the code for them. It can be built either for ck3-tiger with the feature ck3, or for vic3-tiger with the feature vic3, or for imperator-tiger with the feature imperator, but not both at the same time.
Documentation
on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

name: Quality Assurance

jobs:
  test:
    strategy:
      matrix:
        include:
          - os: ubuntu-latest
            name: linux
          - os: windows-latest
            name: windows
    name: ${{ matrix.name }} test
    runs-on: ${{ matrix.os }}
    steps:
      - name: Checkout sources
        uses: actions/checkout@v2

      - name: Install toolchain
        uses: actions-rust-lang/setup-rust-toolchain@v1

      - name: Test
        run: cargo test

      - name: Test CK3
        run: cargo test -p tiger-lib --no-default-features --features ck3 --lib

      - name: Test Imperator
        run: cargo test -p tiger-lib --no-default-features --features imperator --lib

  fmt:
    name: rustfmt
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v2

      - name: Install toolchain
        uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          components: rustfmt

      - name: fmt
        run: cargo fmt --check

  clippy:
    name: clippy
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v2

      - name: Install toolchain
        uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          components: clippy

      - name: CK3 clippy
        run: cargo clippy -p ck3-tiger

      - name: Vic3 clippy
        run: cargo clippy -p vic3-tiger

      - name: Imperator clippy
        run: cargo clippy -p imperator-tiger

      - name: utils clippy
        run: cargo clippy -p utils

  msrv:
    strategy:
      matrix:
        include:
          - os: ubuntu-latest
            name: linux
          - os: windows-latest
            name: windows
    name: ${{ matrix.name }} msrv
    runs-on: ${{ matrix.os }}
    steps:
      - name: Checkout sources
        uses: actions/checkout@v2

      - name: Install toolchain
        uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          toolchain: "1.85"

      - name: tiger-lib msrv
        run: cargo check

      - name: CK3 msrv
        run: cargo check -p ck3-tiger

      - name: Vic3 msrv
        run: cargo check -p vic3-tiger

      - name: Imperator msrv
        run: cargo check -p imperator-tiger