smart-default 0.7.1

Rust custom-derive macro for Default with more control on the fields
Documentation
name: CI
on:
  pull_request:
  push:
    branches: [master]

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
  contents: read
  pages: write
  id-token: write
  checks: write

jobs:
  ci:
    name: CI
    needs: [test, clippy, docs]
    runs-on: ubuntu-latest
    steps:
      - name: Done
        run: exit 0
  test:
    name: Tests
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest]
        rust: [1.69.0, nightly]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v3
      - name: Install rust
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ matrix.rust }}
      - name: Ready cache
        if: matrix.os == 'ubuntu-latest'
        run: sudo chown -R $(whoami):$(id -ng) ~/.cargo/
      - name: Cache cargo
        uses: actions/cache@v1
        id: cache
        with:
          path: ~/.cargo
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
      - name: Test smart-default
        run: cargo test --all-targets
  fmt:
   name: Rustfmt
   runs-on: ubuntu-latest
   steps:
     - uses: actions/checkout@v3
     - uses: dtolnay/rust-toolchain@master
       with:
         toolchain: nightly
         components: rustfmt
     - name: Run fmt --all -- --check
       run: cargo fmt --all -- --check

  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: dtolnay/rust-toolchain@master
        with:
          toolchain: nightly
          components: clippy
      - name: Cache cargo
        uses: actions/cache@v1
        id: cache
        with:
          path: ~/.cargo
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
      - name: Run clippy --all-targets --
        uses: actions-rs/clippy-check@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          args: --all-targets --
  docs:
    name: Docs
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: dtolnay/rust-toolchain@master
        with:
          toolchain: nightly
      - name: Cache cargo
        uses: actions/cache@v1
        id: cache
        with:
          path: ~/.cargo
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
      - name: Run doc tests
        run: cargo test --doc
      - name: Check smart-default docs
        run: cargo doc --no-deps
  docs-ghpages:
    name: Update Docs in GitHub Pages
    runs-on: ubuntu-latest
    if: github.ref == 'refs/heads/master'
    steps:
      - uses: actions/checkout@v3
      - name: Build docs
        env:
          GITHUB_REPO: ${{ github.repository }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |-

          cargo doc --verbose &&
          echo "<meta http-equiv=refresh content=0;url=smart_default/index.html>" > target/doc/index.html
      - name: Upload artifact
        uses: actions/upload-pages-artifact@v1
        with:
          path: target/doc
  deploy-ghpages:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    needs: docs-ghpages
    if: github.ref == 'refs/heads/master'
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v1