matchcore 0.4.0

A high-performance order book and price-time matching engine implemented as a single-threaded, deterministic, in-memory state machine
Documentation
name: Rust CI

on:
  pull_request:
    branches: [main]
    types: [opened, synchronize, ready_for_review, reopened]
    paths:
      - ".github/workflows/rust-ci.yml"
      - "src/**"
      - "Cargo.toml"
      - "Cargo.lock"
      - "examples/**"
      - "docs/**"
      - "README.md"

concurrency:
  group: rust-ci-${{ github.event.pull_request.number }}
  cancel-in-progress: true

jobs:
  rust-ci:
    name: Rust CI
    if: github.event.pull_request.draft == false
    runs-on: ubuntu-latest

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

      - name: Install Rust stable
        uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt, clippy

      - name: Cache cargo registry + build
        uses: Swatinem/rust-cache@v2

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

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

      - name: Test
        run: cargo test --all-features

      - name: Build examples
        run: cargo build --examples

      - name: Install Rust nightly
        uses: dtolnay/rust-toolchain@nightly

      - name: Install cargo-reedme
        run: cargo install cargo-reedme --locked

      - name: Check README.md
        run: cargo +nightly reedme --check