gvas 0.11.0

Crate for parsing UE4 gvas save files.
Documentation
name: Rust

on: [push, pull_request]

env:
  CARGO_TERM_COLOR: always
  RUST_BACKTRACE: full

jobs:
  build:
    name: ${{ matrix.config.toolchain }} / ${{ matrix.config.os }}

    runs-on: ${{ matrix.config.os }}

    strategy:
      fail-fast: false
      matrix:
        config:
          - os: ubuntu-latest
            toolchain: beta

          - os: macos-latest
            toolchain: stable

          - os: ubuntu-latest
            toolchain: stable

          - os: windows-latest
            toolchain: stable

    steps:
      - uses: actions/checkout@v4

      - uses: actions/cache@v4
        with:
          path: |
            ~/.cargo
            ~/.rustup
          key: ${{ runner.os }}-${{ matrix.config.toolchain }}

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

      - name: Build
        run: cargo build --all-targets --verbose --workspace

      - name: Test
        run: cargo test --all-targets --verbose --workspace

      - name: Build --all-features
        run: cargo build --all-targets --all-features --verbose --workspace

      - name: Test --all-features
        run: cargo test --all-targets --all-features --verbose --workspace

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

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

  cross-test:
    name: cross / ${{ matrix.arch }}

    runs-on: ${{ matrix.os }}

    strategy:
      fail-fast: false
      matrix:
        os:
          - ubuntu-latest
        toolchain:
          - stable
        arch:
          - i686-unknown-linux-gnu
          - powerpc-unknown-linux-gnu
          - powerpc64le-unknown-linux-gnu
          - riscv64gc-unknown-linux-gnu
          - s390x-unknown-linux-gnu

    steps:
      - uses: actions/checkout@v4

      - uses: actions/cache@v4
        with:
          path: |
            ~/.cargo
            ~/.rustup
          key: ${{ runner.os }}-${{ matrix.toolchain }}

      - name: Install Rust ${{ matrix.toolchain }}
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ matrix.toolchain }}
          targets: ${{ matrix.arch }}

      - run: cargo install cross
      - run: cross build --target ${{ matrix.arch }}
      - run: cross test --target ${{ matrix.arch }}
      - run: cross build --target ${{ matrix.arch }} --all-features
      - run: cross test --target ${{ matrix.arch }} --all-features