gcode 0.7.0

A gcode parser for no-std applications.
Documentation
name: Continuous Integration

on:
  pull_request:
  push:
    branches:
      - main

jobs:
  check:
    name: Compile and Test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Setup Rust
        uses: dsherret/rust-toolchain-file@v1
      - name: Rust Cache
        uses: Swatinem/rust-cache@v2
      - name: Install Nextest
        uses: taiki-e/install-action@nextest
      - name: Install cargo-hack
        uses: taiki-e/install-action@cargo-hack
      - name: Type Checking
        run: cargo check --workspace --verbose --locked
      - name: Build
        run: cargo build --workspace --verbose --locked
      - name: Test
        run: cargo nextest run --workspace --verbose --locked
      - name: Test feature powerset
        run: cargo hack test --feature-powerset --exclude-features unstable-doc-cfg

  lints:
    name: Linting and Formatting
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Rust Cache
        uses: Swatinem/rust-cache@v2
      - name: Setup Rust
        uses: dsherret/rust-toolchain-file@v1
      - name: Check Formatting
        run: cargo fmt --all --verbose --check
      - name: Clippy
        run: cargo clippy --workspace --verbose

  api-docs:
    name: Publish API Docs to GitHub Pages
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Setup Rust
        uses: dtolnay/rust-toolchain@nightly
      - name: Rust Cache
        uses: Swatinem/rust-cache@v2
      - name: Generate API docs
        run: cargo doc --workspace --verbose --locked
      - name: Redirect top-level GitHub Pages
        run: 'echo ''<meta http-equiv="refresh" content="0; url=gcode/index.html" />'' > target/doc/index.html'
        shell: bash
      - name: Upload API Docs
        uses: JamesIves/github-pages-deploy-action@4.1.1
        if: github.ref == 'refs/heads/main'
        with:
          branch: gh-pages
          folder: target/doc

  workflow-times:
    name: Workflow Timings
    runs-on: ubuntu-latest
    needs:
      - check
    steps:
      - name: Time Reporter
        uses: Michael-F-Bryan/workflow-timer@v0.2.3
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          jobs: |
            Compile and Test