minus 3.3.0

An asynchronous paging library for Rust
name: build
on:
  pull_request:
  push:
    branches:
    - main
env:
  CARGO_TERM_COLOR: always
jobs:
  rustfmt:
    name: rustfmt
    runs-on: ubuntu-latest
    steps:
    - name: Checkout repository
      uses: actions/checkout@v2
    - name: Check formatting
      run: cargo fmt --all -- --check

  test:
    name: test
    env:
      # Emit backtraces on panics.
      RUST_BACKTRACE: 1
    runs-on: ubuntu-latest
    steps:
    - name: Checkout repository
      uses: actions/checkout@v2
    - name: Build crate (Static Output)
      run: cargo build --verbose --features=static_output,search
    - name: Build crate (Tokio)
      run: cargo build --verbose --features=tokio_lib,search
    - name: Build crate (Async-std)
      run: cargo build --verbose --features=async_std_lib,search
    # This step helps separate buildtime and runtime errors in tests.
    # Do not build or run doc tests
    - name: Build tests (Static Output)
      run: cargo test --verbose --features=static_output,search --no-run
    - name: Run Tests (Static Output)
      run: cargo test --verbose --features=static_output,search
    - name: Build tests (Tokio)
      run: cargo test --verbose --features=tokio_lib,search --no-run
    - name: Run Tests (Tokio)
      run: cargo test --verbose --features=tokio_lib,search
    - name: Build tests (Async-std)
      run: cargo test --verbose --features=async_std_lib,search --no-run
    - name: Run Tests (Async-std)
      run: cargo test --verbose --features=async_std_lib,search

  examples:
    name: examples
    env:
      # Emit backtraces on panics.
      RUST_BACKTRACE: 1
    runs-on: ubuntu-latest
    steps:
    - name: Checkout repository
      uses: actions/checkout@v2
    # No terminal available in CI, only check the examples.
    - name: Tokio
      run: cargo check --example=dyn_tokio --features=tokio_lib
    - name: Async-std
      run: cargo check --example=dyn_async_std --features=async_std_lib
    - name: Static
      run: cargo check --example=static --features=static_output
    - name: Static long
      run: cargo check --example=static_long --features=static_output

  lint:
    name: lint
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly
          override: true
          profile: minimal
          components: clippy
      - uses: actions-rs/cargo@v1
        with:
          command: clippy
          args: --features=async_std_lib,search --tests --examples
      - uses: actions-rs/cargo@v1
        with:
          command: clippy
          args: --features=tokio_lib,search --tests --examples
      - uses: actions-rs/cargo@v1
        with:
          command: clippy
          args: --features=static_output,search --tests --examples