lopdf 0.40.0

A Rust library for PDF document manipulation.
Documentation
name: CI

on:
    push:
    pull_request:
        branches: [main]

jobs:
    build:
        runs-on: ubuntu-latest
        continue-on-error: ${{ matrix.continue-on-error || false }}

        strategy:
            matrix:
                name:
                    - stable
                    - beta
                    - nightly
                    - "feat: no default features"
                    - "feat: all features"

                include:
                    - name: beta
                      rust: beta
                    - name: nightly
                      rust: nightly
                      continue-on-error: true

                    - name: "feat: all features"
                      features: "--all-features"

        steps:
            - uses: actions/checkout@v2
            - uses: hecrj/setup-rust-action@v1
              with:
                  rust-version: ${{ matrix.rust || 'stable' }}

            - name: Build
              run: cargo build --verbose ${{ matrix.features }}
            - name: Run tests
              run: cargo test --verbose ${{ matrix.features }} -- --test-threads=1

    pdfutil:
        runs-on: ubuntu-latest

        steps:
            - uses: actions/checkout@v2
            - uses: hecrj/setup-rust-action@v1

            - name: Build
              run: cargo build --verbose --manifest-path pdfutil/Cargo.toml

    clippy:
        runs-on: ubuntu-latest

        steps:
            - uses: actions/checkout@v2
            - uses: hecrj/setup-rust-action@v1

            - name: clippy for lopdf
              run: cargo clippy
            - name: clippy for pdfutil
              run: cargo clippy --manifest-path pdfutil/Cargo.toml

    wasm:
        runs-on: ubuntu-latest

        steps:
            - uses: actions/checkout@v2

            - name: Install
              run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh

            - run: cargo test
            - run: RUSTFLAGS='--cfg getrandom_backend="wasm_js"' wasm-pack test --headless --chrome --features wasm_js
            - run: RUSTFLAGS='--cfg getrandom_backend="wasm_js"' wasm-pack test --headless --firefox --features wasm_js

    wasi:
        runs-on: ubuntu-latest
        strategy:
            matrix:
                target: [wasm32-wasip1, wasm32-wasip2]

        steps:
            - uses: actions/checkout@v2
            - uses: hecrj/setup-rust-action@v1
              with:
                targets: ${{ matrix.target }}

            - name: Build
              run: cargo build --verbose --target ${{ matrix.target }}