halftime 0.1.1

HalftimeHash: almost-universal hashing for long strings
Documentation
name: CI

on:
  push:
    branches:
      - master
      - main
  pull_request:

env:
  CARGO_TERM_COLOR: always

jobs:
  fmt:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install stable
        uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt
      - name: cargo fmt --check
        run: cargo fmt --check

  clippy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install stable
        uses: dtolnay/rust-toolchain@stable
        with:
          components: clippy
      - name: cargo clippy
        run: cargo clippy --all-targets -- -D warnings

  cargo-udeps:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install nightly
        uses: dtolnay/rust-toolchain@nightly
      - uses: aig787/cargo-udeps-action@v1
        with:
          version: 'latest'
          args: '--all-targets'

  msrv:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        msrv: ["1.89.0"]
    name: ubuntu / ${{ matrix.msrv }}
    steps:
      - uses: actions/checkout@v4
      - name: Install ${{ matrix.msrv }}
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ matrix.msrv }}
      - name: cargo +${{ matrix.msrv }} check
        run: cargo check --all-targets

  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install stable
        uses: dtolnay/rust-toolchain@stable
      - name: cargo test --locked
        run: cargo test --locked --all-features --all-targets
      # https://github.com/rust-lang/cargo/issues/6669
      - name: cargo test --doc
        run: cargo test --locked --all-features --doc

  os-check:
    runs-on: ${{ matrix.os }}
    name: ${{ matrix.os }} / stable
    strategy:
      fail-fast: false
      matrix:
        os: [macos-latest, windows-latest]
    steps:
      - uses: actions/checkout@v4
      - name: Install stable
        uses: dtolnay/rust-toolchain@stable
      - name: cargo test
        run: cargo test --locked --all-features --all-targets

  coverage:
    runs-on: ubuntu-latest
    needs: test
    permissions:
      contents: read
      pull-requests: write
    steps:
      - uses: actions/checkout@v4
      - name: Install stable
        uses: dtolnay/rust-toolchain@stable
        with:
          components: llvm-tools-preview
      - name: cargo install cargo-llvm-cov
        uses: taiki-e/install-action@cargo-llvm-cov
      - name: cargo llvm-cov
        run: cargo llvm-cov --locked --all-features --lcov --output-path lcov.info
      - name: Upload to Coveralls
        uses: coverallsapp/github-action@v2
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          path-to-lcov: lcov.info