dynsequence 0.1.0-alpha.4

Sequence-Like data-structure for storing dynamically sized types
Documentation
name: Rust CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

env:
  CARGO_TERM_COLOR: always
  CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
  CARGO_FEATURES_ARG: ''

jobs:
  test:
    name: Build & Test
    runs-on: ubuntu-latest
    strategy:
      matrix:
        channel:
          - stable
          - beta
          - nightly
        include:
          - cargo_features_arg: ''
          - channel: nightly
            cargo_features_arg: '--features unstable'
    steps:
    - uses: actions/checkout@v3
    - name: Install toolchain
      run: |
        rustup toolchain install ${{ matrix.channel }} --no-self-update --profile minimal -c "clippy,rustfmt"
        rustup default ${{ matrix.channel }}
    - name: Cache cargo registry & index
      uses: actions/cache@v3
      with:
        path: |
          ~/.cargo/registry
          ~/.cargo/git
        key: cargo-index-${{ runner.os }}-${{ hashFiles('**/Cargo.*') }}
    - name: Build
      run: |
        cargo build --workspace --all-targets ${{ matrix.cargo_features_arg }}
    - name: Test
      run: |
        cargo test --workspace --all-targets ${{ matrix.cargo_features_arg }}

  check:
    name: Rustfmt & Clippy
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Cache cargo registry & index
        uses: actions/cache@v3
        with:
          path: |
            ~/.cargo/registry
            ~/.cargo/git
          key: cargo-index-${{ runner.os }}-${{ hashFiles('**/Cargo.*') }}
      - name: Rustfmt
        run: |
          cargo fmt --all --check
      - name: Clippy
        run: |
          cargo clippy --workspace --all-targets