simmer 0.3.0

A temperature unit library for Rust. It's intended to be minimal, embedded-aware, and easy to use!
Documentation
name: Cargo Build & Test

on:
  push:
  pull_request:

env:
  CARGO_TERM_COLOR: always

jobs:
  build_and_test:
    name: Rust project - latest
    runs-on: ubuntu-latest
    strategy:
      matrix:
        toolchain:
          - stable
          - nightly
      fail-fast: false

    steps:
      - uses: actions/checkout@v4

      - name: Set up Rust toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: ${{ matrix.toolchain }}

      - name: Cache cargo registry
        uses: actions/cache@v3
        with:
          path: ~/.cargo/registry
          key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}

      - name: Cache cargo index
        uses: actions/cache@v3
        with:
          path: ~/.cargo/git
          key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }}

      - name: Cache cargo build
        uses: actions/cache@v3
        with:
          path: target
          key: ${{ runner.os }}-cargo-build-target-${{ matrix.toolchain }}-${{ hashFiles('**/Cargo.lock') }}

      - name: Cache cargo bin # bc wow why does it take three minutes to build `cargo-deny`
        uses: actions/cache@v3
        with:
          path: ~/.cargo/bin
          key: ${{ runner.os }}-cargo-bin-${{ hashFiles('**/Cargo.lock') }}

      - uses: taiki-e/install-action@v2
        with:
          tool: cargo-deny,cargo-all-features

      - name: Build
        run: cargo build --verbose

      - name: Run tests
        run: cargo test-all-features

      - name: Run cargo-deny
        run: cargo deny check

  test_semver:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Check semver
        uses: obi1kenobi/cargo-semver-checks-action@v2

  cargo_fuzz:
    name: Use `cargo-fuzz` for a few minutes to check for easy invariants
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Set up Rust toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: nightly

      - uses: taiki-e/install-action@v2
        with:
          tool: cargo-binstall,cargo-fuzz

      - name: Fuzz `CheckedTemperature` with `cargo-fuzz`
        run: cargo +nightly fuzz run checked -- -max_total_time=180