intervals-general 0.1.1

intervals-general is a crate enabling general representation of and operations on intervals over generic types (e.g. supporting units of measure or arbitrary built-in types, or any type with PartialOrd implementation).
Documentation
name: CI - Clippy, Rustfmt, Rustdoc, & Tarpaulin
on: [pull_request, push]

jobs:
  tools:
    name: Clippy, Rustfmt, & Tarpaulin (Rust ${{ matrix.toolchain }} on ubuntu-latest)
    runs-on: ubuntu-latest

    strategy:
      matrix:
        toolchain:
          - stable

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ matrix.toolchain }}
          components: rustfmt, clippy

      - name: Setup cache
        uses: actions/cache@v4
        with:
          path: |
            ~/.cargo/bin/
            ~/.cargo/registry/index/
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
            target/
          key: ${{ runner.os }}-cargo-${{ matrix.toolchain }}-${{ hashFiles('**/Cargo.lock') }}

      - name: Clippy
        run: cargo clippy --all-targets --all-features -- -D warnings

      - name: Rustfmt
        run: cargo fmt --all -- --check

      - name: Rustdoc
        env:
          RUSTDOCFLAGS: "-D warnings"
        run: cargo doc --all --no-deps

      - name: Install cargo-tarpaulin
        if: github.event_name == 'push'
        run: |
          if ! command -v cargo-tarpaulin &> /dev/null; then
            cargo install cargo-tarpaulin
          fi

      - name: Run tarpaulin
        if: github.event_name == 'push'
        run: cargo tarpaulin --out xml

      - name: Upload to codecov.io
        if: github.event_name == 'push'
        uses: codecov/codecov-action@v4
        with:
          token: ${{ secrets.CODECOV_TOKEN }}