fastlanes 0.3.0

Rust implementation of the FastLanes compression layout
Documentation
name: CI

on:
  push:
    branches: [ "develop" ]
  pull_request: { }
  workflow_dispatch: { }

permissions:
  actions: read
  contents: read

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
      - uses: ./.github/actions/setup-rust

      - name: Rust Build
        run: cargo build --all-features --all-targets
      - name: Rust Lint - Format
        run: cargo fmt --all --check
      - name: Rust Lint - Clippy
        run: cargo clippy --all-features --all-targets
      - name: Rust Test
        run: cargo test --workspace --all-features

  bench-codspeed:
    name: Benchmark with Codspeed
    runs-on:
      - runs-on=${{ github.run_id }}
      - family=c6id.8xlarge
      - image=ubuntu24-full-x64
      - tag=bench-codspeed

    steps:
      - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
      - uses: ./.github/actions/setup-rust

      - name: Install Codspeed
        shell: bash
        run: cargo install --force cargo-codspeed --locked

      - name: Build benchmarks
        env:
          RUSTFLAGS: "-C target-feature=+avx2"
        run: |
          cargo codspeed build --profile bench

      - name: Run benchmarks
        uses: CodSpeedHQ/action@653fdc30e6c40ffd9739e40c8a0576f4f4523ca1 # v4
        with:
          run: cargo codspeed run
          token: ${{ secrets.CODSPEED_TOKEN }}
          mode: instrumentation