twitter-stream 0.13.0

A library for listening on Twitter Streaming API.
Documentation
name: CI

on: [push, pull_request]

jobs:
  fmt:
    name: Rustfmt
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Install Rust toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          profile: minimal
          components: rustfmt
      - name: cargo fmt -- --check
        uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: -- --check

  test:
    name: Test
    needs: [fmt]
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        toolchain:
          - stable
          - beta
          - nightly
          - '1.46.0'
        features:
          - ''
          - hyper
    steps:
      - uses: actions/checkout@v2
      - name: Install Rust toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: ${{ matrix.toolchain }}
          profile: minimal
          override: true
        id: toolchain
      - name: Cache Cargo registry
        uses: actions/cache@v2
        with:
          path: ~/.cargo/registry
          key: cargo-registry-${{ matrix.features }}-${{ hashFiles('Cargo.*') }}-${{ steps.toolchain.outputs.rustc_hash }}-${{ runner.os }}}
          restore-keys: |
            cargo-registry-${{ matrix.features }}-${{ hashFiles('Cargo.*') }}-${{ steps.toolchain.outputs.rustc_hash }}-${{ runner.os }}}
            cargo-registry-${{ matrix.features }}-${{ hashFiles('Cargo.*') }}-${{ steps.toolchain.outputs.rustc_hash }}-
            cargo-registry-${{ matrix.features }}-${{ hashFiles('Cargo.*') }}-
              cargo-registry-${{ matrix.features }}-
            cargo-registry-
      - name: Cache Cargo build
        uses: actions/cache@v2
        with:
          path: target
          key: cargo-build-target-${{ runner.os }}-${{ steps.toolchain.outputs.rustc_hash }}-${{ matrix.features }}-${{ hashFiles('**/Cargo.*') }}
          restore-keys: |
            cargo-build-target-${{ runner.os }}-${{ steps.toolchain.outputs.rustc_hash }}-${{ matrix.features }}-${{ hashFiles('**/Cargo.*') }}
            cargo-build-target-${{ runner.os }}-${{ steps.toolchain.outputs.rustc_hash }}-${{ matrix.features }}-
            cargo-build-target-${{ runner.os }}-${{ steps.toolchain.outputs.rustc_hash }}-
      - name: Build
        if: matrix.features == 'hyper'
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --verbose --no-default-features --features=${{ matrix.features }}
      - name: Test
        if: matrix.features == 'hyper'
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --no-default-features --features=${{ matrix.features }}
      - name: Check
        if: matrix.features != 'hyper'
        uses: actions-rs/cargo@v1
        with:
          command: check
          args: --verbose --no-default-features --features=${{ matrix.features }}
      - name: Check Rustdoc
        if: matrix.features == 'hyper'
        uses: actions-rs/cargo@v1
        with:
          command: doc
          args: --no-deps --no-default-features --features=${{ matrix.features }}

  miri:
    name: Soundness test (Miri)
    needs: [fmt]
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Install Rust toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly
          profile: minimal
          components: miri
          override: true
      - name: Cache Cargo registry
        uses: actions/cache@v2
        with:
          path: ~/.cargo/registry
          key: cargo-registry-${{ hashFiles('Cargo.*') }}-${{ steps.toolchain.outputs.rustc_hash }}-${{ runner.os }}}
          restore-keys: |
            cargo-registry-${{ hashFiles('Cargo.*') }}-${{ steps.toolchain.outputs.rustc_hash }}-${{ runner.os }}}
            cargo-registry-${{ hashFiles('Cargo.*') }}-${{ steps.toolchain.outputs.rustc_hash }}-
            cargo-registry-${{ hashFiles('Cargo.*') }}-
            cargo-registry-
      - name: Cache Cargo build
        uses: actions/cache@v2
        with:
          path: target
          key: miri-cargo-build-target-${{ runner.os }}-${{ steps.toolchain.outputs.rustc_hash }}-${{ hashFiles('**/Cargo.*') }}
          restore-keys: |
            miri-cargo-build-target-${{ runner.os }}-${{ steps.toolchain.outputs.rustc_hash }}-${{ hashFiles('**/Cargo.*') }}
            miri-cargo-build-target-${{ runner.os }}-${{ steps.toolchain.outputs.rustc_hash }}-
      - run: cargo miri setup
      - name: cargo miri test
        uses: actions-rs/cargo@v1
        with:
          command: miri
          args: test --no-default-features -- -- soundness