utf8-zero 0.8.1

Zero-copy, incremental UTF-8 decoding with error handling
Documentation
on: [push, pull_request]

name: CI

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

permissions: {}

jobs:
  lint:
    name: Lint
    runs-on: ubuntu-latest
    env:
      RUSTFLAGS: -D warnings
    steps:
    - uses: actions/checkout@v4
      with:
        persist-credentials: false
    - name: Install Rust
      id: toolchain
      uses: dtolnay/rust-toolchain@stable
      with:
        components: rustfmt, clippy
    - name: Run Rustfmt
      run: cargo +${{steps.toolchain.outputs.name}} fmt --check
    - name: Run Clippy
      run: cargo +${{steps.toolchain.outputs.name}} clippy

  test:
    name: Test
    runs-on: ubuntu-latest
    env:
      RUSTFLAGS: -D warnings
    steps:
      - uses: actions/checkout@v4
        with:
          persist-credentials: false
      - name: Install Rust
        id: toolchain
        uses: dtolnay/rust-toolchain@stable
      - name: Test
        run: cargo +${{steps.toolchain.outputs.name}} test

  no-std:
    name: no_std
    runs-on: ubuntu-latest
    env:
      RUSTFLAGS: -D warnings
    steps:
      - uses: actions/checkout@v4
        with:
          persist-credentials: false
      - name: Install Rust
        id: toolchain
        uses: dtolnay/rust-toolchain@stable
      - name: Build no_std
        run: cargo +${{steps.toolchain.outputs.name}} build --no-default-features

  miri:
    name: Miri
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          persist-credentials: false
      - name: Install Rust
        id: toolchain
        uses: dtolnay/rust-toolchain@nightly
        with:
          components: miri, rust-src
      - name: Miri
        run: cargo +${{steps.toolchain.outputs.name}} miri test