object 0.24.0

A unified interface for reading and writing object file formats.
Documentation
name: Rust

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:
    strategy:
      matrix:
        os: ["ubuntu-latest"]
        rust_channel: ["stable", "beta", "nightly", "1.42.0"]
        include:
          - rust_channel: "stable"
            os: "macOS-latest"
    runs-on: ${{matrix.os}}
    steps:
    - uses: actions/checkout@v2
    - name: Install rustup
      run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile=minimal
    - name: Install rust channel
      run: |
        rustup install ${{matrix.rust_channel}}
        rustup default ${{matrix.rust_channel}}
    - name: Test debug
      run: cargo test --verbose --features all
    - name: Test release
      run: cargo test --verbose --features all --release

  features:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - run: cargo build --no-default-features --features read
      - run: cargo build --no-default-features --features write
      - run: cargo build --no-default-features --features read_core,write_core,coff
      - run: cargo build --no-default-features --features read_core,write_core,elf
      - run: cargo build --no-default-features --features read_core,write_core,macho
      - run: cargo build --no-default-features --features read_core,pe
      - run: cargo build --no-default-features --features read_core,wasm

  rustfmt:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Install rustup
        run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile=minimal
      - name: Install rust
        run: |
          rustup install stable
          rustup default stable
          rustup component add rustfmt
      - run: cargo fmt --all -- --check

  coverage:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Install rustup
        run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile=minimal
      - name: Install nightly rust
        run: |
          rustup install nightly
          rustup default nightly
      - name: Install cargo tarpaulin
        run: RUSTFLAGS="--cfg procmacro2_semver_exempt" cargo install --force cargo-tarpaulin
      - name: Run cargo tarpaulin
        # TODO: Hook this up to coveralls, so we actually get coverage reports.
        run: cargo tarpaulin --features all --verbose # --ciserver travis-ci --coveralls "$TRAVIS_JOB_ID";

  doc:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - run: cargo doc --features all