f8 0.2.0

A no_std, one-byte UNORM with exact rounding, saturating arithmetic, and SIMD conversion
Documentation
name: CI

on: [push, pull_request]

permissions:
  contents: read

jobs:
  test:
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
        rust: [stable]
        include:
          - os: ubuntu-latest
            rust: 1.85.0
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ matrix.rust }}
      - run: cargo test --all-features
      - run: cargo test --no-default-features
      - run: cargo test --no-default-features --features serde
      - run: cargo test --no-default-features --features simd
      - run: cargo test --release --all-features -- --include-ignored

  quality:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt, clippy
      - run: cargo fmt --all -- --check
      - run: cargo clippy --all-targets --all-features -- -D warnings
      - run: cargo clippy --all-targets --no-default-features -- -D warnings
      - run: cargo doc --no-deps --all-features
        env:
          RUSTDOCFLAGS: -D warnings

  portable:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        target:
          - aarch64-unknown-linux-gnu
          - powerpc64-unknown-linux-gnu
          - thumbv6m-none-eabi
          - thumbv7em-none-eabi
          - riscv32imac-unknown-none-elf
          - wasm32-unknown-unknown
          - x86_64-unknown-none
          - x86_64-unknown-uefi
          - x86_64-fortanix-unknown-sgx
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
        with:
          targets: ${{ matrix.target }}
      - run: cargo build --lib --all-features --target ${{ matrix.target }}
      - run: cargo build --lib --no-default-features --target ${{ matrix.target }}

  miri:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@nightly
        with:
          components: miri
      - run: cargo miri test --all-features
      - run: cargo miri test --no-default-features --target powerpc64-unknown-linux-gnu --test conversions

  avx2:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      # Hosted CPU features vary; compile the explicit-feature path everywhere.
      - run: cargo build --lib --all-features
        env:
          RUSTFLAGS: -C target-feature=+avx2