rcf3 0.5.1

Streaming anomaly detection algorithms in Rust with Python bindings.
Documentation
name: Test - Rust

on:
  push:
    branches:
      - main
    paths:
      - "**/*.rs"
      - ".github/workflows/test-rust.yaml"
  pull_request:
    branches:
      - main
    paths:
      - "**/*.rs"
      - ".github/workflows/test-rust.yaml"
  schedule:
    - cron: "0 0 * * 0"
  workflow_dispatch:
  workflow_call:

jobs:
  test:
    name: cargo test (${{ matrix.os }})
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os:
          - ubuntu-latest
          - ubuntu-24.04-arm
          - macos-latest
          - windows-latest
          - windows-11-arm

    env:
      SCCACHE_GHA_ENABLED: "true"
      RUSTC_WRAPPER: "sccache"

    steps:
      - uses: actions/checkout@v6
      - uses: dtolnay/rust-toolchain@stable
      - uses: mozilla-actions/sccache-action@v0.0.10
      - name: Run tests
        run: cargo test --verbose
      - name: Run tests (no-default-features)
        run: cargo test --verbose --no-default-features
      - name: Check no-default-features (rlib)
        run: cargo rustc --verbose --no-default-features --lib --crate-type rlib
      - name: Check serde (no-default-features, rlib)
        run: cargo rustc --verbose --no-default-features --features serde --lib --crate-type rlib