warc 0.4.0

A Rust library for reading and writing WARC files.
Documentation
name: Code Quality Pipeline

on:
  push:
    branches:
      - master
  pull_request: {}

jobs:
  rust_toolchains:
    name: Rust Version Compatibility
    runs-on: ${{ matrix.os }}
    continue-on-error: ${{ matrix.experimental }}
    strategy:
      matrix:
        os: [ubuntu-latest]
        toolchain: [stable]
        experimental: [false]
        include:
          - {toolchain: beta, os: ubuntu-latest, experimental: false}
          - {toolchain: nightly, os: ubuntu-latest, experimental: true}
      fail-fast: false
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Setup Toolchain
      uses: actions-rs/toolchain@v1
      with:
        toolchain: ${{matrix.toolchain}}
        override: true
    - name: Test
      uses: actions-rs/cargo@v1
      with:
        command: test
        args: --all
    - name: Run Example - Hello Warc
      uses: actions-rs/cargo@v1
      with:
        command: run
        args: --example hello_warc
  platform_compat:
    name: Platform Compatibility
    runs-on: ${{ matrix.os }}
    continue-on-error: ${{ matrix.experimental }}
    strategy:
      matrix:
        os: [ubuntu-latest]
        toolchain: [stable]
        experimental: [false]
        include:
          - {toolchain: stable, os: windows-latest, experimental: false}
          - {toolchain: stable, os: macos-latest, experimental: false}
      fail-fast: false
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Setup Toolchain
      uses: actions-rs/toolchain@v1
      with:
        toolchain: ${{matrix.toolchain}}
        override: true
    - name: Check Examples
      uses: actions-rs/cargo@v1
      with:
        command: check
        args: --examples
    - name: Run Example - Hello Warc
      uses: actions-rs/cargo@v1
      with:
        command: run
        args: --example hello_warc
  clippy:
    name: Clippy linting
    runs-on: ubuntu-latest
    continue-on-error: true
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Setup Toolchain
      uses: actions-rs/toolchain@v1
      with:
        toolchain: stable
        override: true
    - name: Clippy linting
      uses: actions-rs/cargo@v1
      with:
        command: clippy
        args: -- -A clippy::type_complexity
  rustfmt:
    name: Rustfmt check
    runs-on: ubuntu-latest
    continue-on-error: true
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Setup Toolchain
      uses: actions-rs/toolchain@v1
      with:
        toolchain: stable
        override: true
    - name: Rustfmt check
      uses: actions-rs/cargo@v1
      with:
        command: fmt
        args: -- --check