enid 0.1.0

A library to parse Encrypted Numeric Identifiers
Documentation
name: CI

on:
  push:
    branches: [ master ]
  pull_request:
  schedule:
    - cron: '0 0 * * *'

env:
  CARGO_TERM_COLOR: always

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Install Rust (stable)
        uses: dtolnay/rust-toolchain@stable
      - name: Restore cache
        uses: Swatinem/rust-cache@v2
      - name: Build (no default features)
        run: cargo build --no-default-features
      - name: Build (all features)
        run: cargo build --all-features
  test-locked:
    name: Unit tests (locked deps)
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Install Rust (stable)
        uses: dtolnay/rust-toolchain@stable
      - name: Restore cache
        uses: Swatinem/rust-cache@v2
      - name: Run tests
        run: cargo test --all-features
  test-latest:
    name: Unit tests (latest deps)
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Install Rust (stable)
        uses: dtolnay/rust-toolchain@stable
      - name: Update dependencies
        run: cargo update
      - name: Restore cache
        uses: Swatinem/rust-cache@v2
      - name: Run tests
        run: cargo test --all-features
  rustdoc:
    name: Rustdoc
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Install Rust (nightly)
        uses: dtolnay/rust-toolchain@nightly
      - name: Restore cache
        uses: Swatinem/rust-cache@v2
      - name: Build docs
        run: cargo rustdoc --all-features -- --cfg docsrs
  rustfmt:
    name: Rustfmt
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Install Rust (stable)
        uses: dtolnay/rust-toolchain@stable
      - name: Check formatting
        run: cargo fmt --check
  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Install Rust (stable)
        uses: dtolnay/rust-toolchain@stable
      - name: Restore cache
        uses: Swatinem/rust-cache@v2
      - name: Run Clippy
        run: cargo clippy --all-features -- --deny warnings
  msrv:
    name: MSRV
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Install Rust (MSRV)
        uses: dtolnay/rust-toolchain@1.83.0
      - name: Restore cache
        uses: Swatinem/rust-cache@v2
      - name: Install cargo-msrv
        run: cargo install cargo-msrv@0.18.1
      - name: Check installed toolchain
        run: |
          test "$(rustc -V | cut -d" " -f2)" = "$(cargo msrv show --output-format minimal)"
      - name: Verify MSRV
        run: cargo msrv verify --all-features