rustica 0.12.0

Rustica is a functional programming library for the Rust language.
Documentation
name: CI Tests

on:
  workflow_call:

env:
  CARGO_TERM_COLOR: always
  RUSTFLAGS: "-D warnings -A deprecated"

jobs:
  test:
    name: Test ${{ matrix.rust }} on ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        rust: [stable]
        os: [ubuntu-latest, windows-latest, macos-latest]
        features: ["", "--all-features"]
        include:
          - rust: 1.88.0
            os: ubuntu-latest
            features: "--all-features"
          - rust: nightly
            os: ubuntu-latest
            features: "--all-features"
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust ${{ matrix.rust }}
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: ${{ matrix.rust }}
      - uses: Swatinem/rust-cache@v2
      - name: Run tests
        run: cargo test ${{ matrix.features }} --verbose

  unused_dependencies:
    name: Check for unused dependencies
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust nightly
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: nightly
      - uses: Swatinem/rust-cache@v2
      - name: Install cargo-udeps
        uses: taiki-e/install-action@v2
        with:
          tool: cargo-udeps
      - name: Run cargo-udeps
        run: cargo +nightly udeps --all-targets --all-features