zone-detect 1.1.1

Rust version of the ZoneDetect C library.
Documentation
on:
  push:
    branches:
      - main
  pull_request:
  schedule:
    - cron: '0 0 * * 0'

name: CI

jobs:
  check:
    name: Check
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: Swatinem/rust-cache@v2
      - run: cargo check

  msrv:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: Swatinem/rust-cache@v2
      - run: |
          # Extract the MSRV from Cargo.toml.
          msrv=$(cargo metadata --no-deps --format-version=1 | jq --raw-output '.packages[] | .rust_version')

          rustup toolchain install ${msrv} --profile minimal --no-self-update
          cargo +${msrv} build

  test:
    name: Test Suite
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: Swatinem/rust-cache@v2
      - run: cargo test

  fmt:
    name: Rustfmt
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - run: cargo fmt --all -- --check

  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: Swatinem/rust-cache@v2
      - run: cargo clippy -- -D warnings

  doc:
    name: Docs
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: Swatinem/rust-cache@v2
      - run: cargo doc
        env:
          RUSTDOCFLAGS: -Dwarnings