tar-no-std 0.4.2

Library to read Tar archives (by GNU Tar) in `no_std` contexts with zero allocations. The crate is simple and only supports reading of "basic" archives, therefore no extensions, such as GNU Longname. The maximum supported file name length is 256 characters excluding the NULL-byte (using the tar name/prefix longname implementation).The maximum supported file size is 8GiB. Directories are supported, but only regular fields are yielded in iteration.
Documentation
name: Build

on: [ push, pull_request, merge_group ]

env:
  CARGO_TERM_COLOR: always

jobs:
  build:
    runs-on: "${{ matrix.runs-on }}"
    strategy:
      matrix:
        runs-on:
          - macos-latest
          - ubuntu-latest
          - windows-latest
        rust:
          - stable
          - nightly
          - 1.85.0 # MSVR
    steps:
      - uses: actions/checkout@v4
      - name: Setup Rust toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: "${{ matrix.rust }}"
      - uses: Swatinem/rust-cache@v2
        with:
          key: "${{ matrix.runs-on }}-${{ matrix.rust }}"
      - name: Build
        run: cargo build --all-targets --verbose --features alloc
      # use some arbitrary no_std target
      - name: Install no_std target thumbv7em-none-eabihf
        run: rustup target add thumbv7em-none-eabihf
      - name: Build (no_std)
        run: cargo build --verbose --target thumbv7em-none-eabihf --features alloc
      - name: Run tests
        run: cargo test --verbose --features alloc

  miri:
    runs-on: "${{ matrix.runs-on }}"
    needs:
      # Logical dependency and wait for cache to be present
      - build
    strategy:
      matrix:
        runs-on:
          - ubuntu-latest
        rust:
          - nightly
    steps:
      - uses: actions/checkout@v4
      - name: Setup Rust toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: "${{ matrix.rust }}"
      - uses: Swatinem/rust-cache@v2
        with:
          key: "${{ matrix.runs-on }}-${{ matrix.rust }}"
      - run: rustup component add miri
      - run: cargo miri test --tests

  style_checks:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        rust:
          - stable
    steps:
      - uses: actions/checkout@v4
      - name: Setup Rust toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: "${{ matrix.rust }}"
      - uses: Swatinem/rust-cache@v2
        with:
          key: "${{ matrix.runs-on }}-${{ matrix.rust }}"
      - name: Rustfmt
        run: cargo fmt --all -- --check
      - name: Clippy
        run: cargo clippy --features alloc --all-targets
      - name: Rustdoc
        run: cargo doc --no-deps --document-private-items --features alloc