prollytree 0.3.2

A prolly (probabilistic) tree for efficient storage, retrieval, and modification of ordered data.
Documentation
name: CI

on:
  pull_request:
    types: [opened, ready_for_review, synchronize]
  push:
    branches:
      - main

jobs:
  pre-commit:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: actions/setup-python@v5
      with:
        python-version: '3.11'
    - uses: pre-commit/action@v3.0.1

  test:
    needs: pre-commit
    strategy:
      matrix:
        include:
          - feature_flags: "--no-default-features"
            name: "minimal"
          - feature_flags: "--no-default-features --features git"
            name: "git-only"
          - feature_flags: ""
            name: "default"
    runs-on: ubuntu-latest
    steps:

    - uses: actions/checkout@v4

    - name: Check Cargo.lock is up to date
      run: cargo check --locked

    - name: build (${{ matrix.name }})
      run: cargo build --locked --all --verbose ${{ matrix.feature_flags }}

    - name: test (${{ matrix.name }})
      run: cargo test --locked --verbose ${{ matrix.feature_flags }}

    - name: clippy (${{ matrix.name }})
      run: cargo clippy --locked --all ${{ matrix.feature_flags }} -- -D warnings

  clippy-all-features:
    needs: pre-commit
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4

    - uses: actions/setup-python@v5
      with:
        python-version: '3.11'

    - name: clippy (all features)
      run: cargo clippy --locked --all --all-features -- -D warnings

  docs:
    needs: pre-commit
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4

    - name: build benchmarks
      run: cargo test --locked --benches --no-run --verbose

    - name: docs
      run: cargo doc --locked --document-private-items --no-deps