nojson 0.3.10

A flexible JSON library with no dependencies and no macros
Documentation
name: CI

on: [push]

jobs:
  check:
    name: Check
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - run: rustup update stable
      - run: rustup default stable
      - run: cargo check --all

  test:
    name: Test Suite
    runs-on: ubuntu-latest
    strategy:
      matrix:
        toolchain: [stable, beta, nightly]
    steps:
      - uses: actions/checkout@v6
      - run: rustup update ${{ matrix.toolchain }}
      - run: rustup default ${{ matrix.toolchain }}
      - run: cargo test --all

  pbt:
    name: Property-based Tests
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - run: rustup update stable
      - run: rustup default stable
      - run: cargo test -p pbt
        env:
          PROPTEST_CASES: 32

  bench:
    name: Bench (build only)
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - run: rustup update stable
      - run: rustup default stable
      - run: cargo bench --no-run

  lints:
    name: Lints
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - run: rustup update stable
      - run: rustup default stable
      - run: rustup component add rustfmt clippy
      - run: cargo fmt --all -- --check
      - run: cargo clippy --all -- -D warnings

  no-std:
    name: no_std
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - run: rustup update stable
      - run: rustup default stable
      - run: cargo check --no-default-features
      - run: cargo test --no-default-features
      - run: cargo clippy --no-default-features -- -D warnings

  fuzz:
    name: Fuzz
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - run: rustup update nightly
      - run: rustup default nightly
      - run: rustup component add rust-src
      - run: cargo install cargo-fuzz
      - name: Run fuzz target
        run: cargo +nightly fuzz run fuzz_target -- -max_len=4096 -max_total_time=60