numrs2 0.3.3

A Rust implementation inspired by NumPy for numerical computing (NumRS2)
Documentation
name: Rust

on:
  push:
    branches: [ "master", "main" , "develop", "release", "feature/*" ]
  pull_request:
    branches: [ "master", "main", "develop", "release"]

env:
  CARGO_TERM_COLOR: always

jobs:
  test:
    name: Test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Install Rust
        uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt, clippy

      # Note: No system dependencies required - OxiBLAS is pure Rust
      - name: Install system dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y build-essential pkg-config

      - name: Rust Cache
        uses: Swatinem/rust-cache@v2
      
      - name: Check compilation (CI-safe)
        run: cargo check --verbose --features="ci-safe"
      
      - name: Run tests (CI-safe only)
        run: cargo test --verbose --features="ci-safe" --lib

  lint:
    name: Lint
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Install Rust
        uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt, clippy

      # Note: No system dependencies required - OxiBLAS is pure Rust
      - name: Install system dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y build-essential pkg-config

      - name: Rust Cache
        uses: Swatinem/rust-cache@v2
      
      - name: Check formatting
        run: cargo fmt --all -- --check
      
      - name: Run clippy (warnings allowed for alpha release)
        run: cargo clippy --lib --tests --features="ci-safe" || true

  examples:
    name: Examples
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Install Rust
        uses: dtolnay/rust-toolchain@stable

      # Note: No system dependencies required - OxiBLAS is pure Rust
      - name: Install system dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y build-essential pkg-config

      - name: Rust Cache
        uses: Swatinem/rust-cache@v2
      
      - name: Run basic usage example
        run: cargo run --example basic_usage
      
      - name: Run linalg example (with CI-safe features)
        run: cargo run --example matrix_decomp_example --features="ci-safe"