cadical-sys 0.7.0

Almost complete safe and unsafe bindings for the CaDiCal SAT solver. Made using the cxx crate and then wrapped in a safe 1 to 1 API.
Documentation
# More information can be found here:
# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions

###################################################################################################
# Workflow name
###################################################################################################

# standard name for CI workflow
name: CI

###################################################################################################
# When to run the workflow
###################################################################################################

# perform CI only on main branch
on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]


###################################################################################################
# environment variables
###################################################################################################

# more information can be found at https://doc.rust-lang.org/cargo/reference/environment-variables.html
env:
  # Controls whether or not colored output is used in the terminal.
  CARGO_TERM_COLOR: always # always: Always display colors.
  # Make sure CI fails on all warnings, including Clippy lints
  # RUSTFLAGS: "-Dwarnings" this cannot be enabled since some libs have warnings

###################################################################################################
# jobs
###################################################################################################

jobs:

  #################################################################################################
  # Sanity job
  #################################################################################################

  # These 4 were grouped together because they all require installation of dependencies
  fmt-check-clippy-build:
    # job name will be displayed in the GitHub UI
    name: Format / Check / Clippy / Docs / Test
    # job will run on ubuntu-latest
    runs-on: ubuntu-latest
    # job timeout, shouldn't take longer really
    timeout-minutes: 10
    # job steps
    steps:
      # This action checks-out your repository under $GITHUB_WORKSPACE, so your workflow can access it.
      - uses: actions/checkout@v3
      # This GitHub Action installs a Rust toolchain using rustup. It is designed for one-line concise usage and good defaults.
      - uses: dtolnay/rust-toolchain@stable
      # used by popular Rust projects to check formatting
      - run: cargo fmt --all --check
      # check is a weaker version of clippy but it is faster
      - run: cargo check --all-targets --all-features
      # source https://doc.rust-lang.org/nightly/clippy/continuous_integration/github_actions.html
      - run: cargo clippy --all-targets --all-features -- -D warnings
      # A more pedantic version that should probably be used in the future, but it is too much for now
      - run: cargo clippy --all-targets --all-features -- -D warnings -Dclippy::all -Dclippy::pedantic
      # try and build the project
      - run: cargo build --verbose
      # source https://github.com/dtolnay/syn/blob/master/.github/workflows/ci.yml
      - run: cargo test --all-features --doc
      - run: cargo doc --all-features
      # run test suite
      - run: cargo test --verbose
      # test cargo clean
      - run: cargo clean --verbose
      # run test suite
      - run: cargo test --verbose
      

  #################################################################################################
  # test docs job
  #################################################################################################

  # test-docs:
  #   name: Test Documentation
  #   # run only if the previous job succeeded
  #   # needs: fmt-check-clippy-build
  #   runs-on: ubuntu-latest
  #   timeout-minutes: 5
  #   steps:
  #     - uses: actions/checkout@v3
  #     - uses: dtolnay/rust-toolchain@stable
  #     # source https://github.com/dtolnay/syn/blob/master/.github/workflows/ci.yml
  #     - run: cargo test --all-features --doc
  #     - run: cargo doc --all-features

  #################################################################################################
  # test job
  #################################################################################################

  # test:
  #   name: Test
  #   # needs: test-docs
  #   runs-on: ubuntu-latest
  #   timeout-minutes: 10
  #   steps:
  #     - uses: actions/checkout@v3
  #     - uses: dtolnay/rust-toolchain@stable
  #     - run: cargo test --verbose

  #################################################################################################
  # Miri job
  #################################################################################################

  # miri:
  #   name: Miri
  #   needs: test
  #   runs-on: ubuntu-latest
  #   timeout-minutes: 20
  #   steps:
  #     - uses: actions/checkout@v3
  #     # source https://github.com/dtolnay/anyhow/blob/master/.github/workflows/ci.yml
  #     - uses: dtolnay/rust-toolchain@miri
  #     - run: cargo miri setup
  #     - run: cargo miri test --test miri
  #       env:
  #         MIRIFLAGS: -Zmiri-strict-provenance

  #################################################################################################
  # Windows job
  #################################################################################################

  # windows:
  #   name: Windows
  #   runs-on: windows-latest
  #   timeout-minutes: 4
  #   steps:
  #     - uses: actions/checkout@v3
  #     - uses: dtolnay/rust-toolchain@stable
  #     - run: cargo test --verbose

  #################################################################################################
  # Windows job
  #################################################################################################

  mac-os:
    name: MacOS
    runs-on: macos-latest
    timeout-minutes: 5
    steps:
      - uses: actions/checkout@v3
      - uses: dtolnay/rust-toolchain@stable
      - run: cargo test --verbose

  #################################################################################################
  # Clang in Ubuntu
  #################################################################################################

  clang-in-ubuntu:
    name: Clang in Ubuntu
    runs-on: ubuntu-latest
    timeout-minutes: 4
    steps:
      - uses: actions/checkout@v3
      - uses: dtolnay/rust-toolchain@stable
      - run: export CXX=clang++
      - run: cargo test --verbose

  #################################################################################################
  # LLD in Ubuntu
  #################################################################################################

  lld-in-ubuntu:
    name: LLD in Ubuntu
    runs-on: ubuntu-latest
    timeout-minutes: 4
    steps:
      - uses: actions/checkout@v3
      - uses: dtolnay/rust-toolchain@stable
      - run: export RUSTFLAGS="-C link-arg=-fuse-ld=lld"
      - run: cargo test --verbose

  #################################################################################################
  # Chainging linker entirely
  #################################################################################################

  chainging-linker-entirely:
    name: Changing linker entirely
    runs-on: ubuntu-latest
    timeout-minutes: 4
    steps:
      - uses: actions/checkout@v3
      - uses: dtolnay/rust-toolchain@stable
      - run: export RUSTFLAGS="-C linker=g++"
      - run: export CXX=g++
      - run: cargo test --verbose