ringbuffer 0.16.0

A fixed-size circular buffer
Documentation
name: Rust

on:
  pull_request:
  push:

env:
  CARGO_TERM_COLOR: always

jobs:
  lint:
    name: Lint
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Install nightly toolchain with lint tools available
        uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: nightly
          override: true
          components: clippy, rustfmt

      - name: Run cargo fmt
        uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: --all -- --check

      - uses: actions-rs/clippy-check@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          args: --all-features
  test:
    name: Test Stable
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Install stable toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          override: true

      - name: Run cargo test
        uses: actions-rs/cargo@v1
        with:
          command: test

  test-beta:
    name: Test Beta
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
      - name: Install beta toolchain
        uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: beta
          override: true

      - name: Run cargo test
        uses: actions-rs/cargo@v1
        with:
          command: test
  test-nightly:
    name: Test Nightly
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Install nightly toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly
          override: true

      - name: Run cargo test
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --all-features

  test-miri:
    name: Test Miri
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Install Miri
        run: |
          rustup toolchain install nightly --component miri
          rustup override set nightly
          cargo miri setup
      - name: Test with Miri
        run: cargo miri test

  build-no-std:
    name: Build no-std
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: Install stable no-std toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: thumbv7em-none-eabihf
          override: true

      - name: Run cargo build
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --target thumbv7em-none-eabihf --all-features

  build-without-alloc:
    name: Build no-std without alloc
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: Install stable no-std toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: thumbv7em-none-eabihf
          override: true

      - name: Run cargo build
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --target thumbv7em-none-eabihf --no-default-features