structdiff 0.7.3

zero-dependency crate for generating and applying partial diffs between struct instances
Documentation
on: [push]

name: CI

jobs:
  rustfmt:
    name: Rustfmt
    runs-on: ${{ matrix.config.os }}
    strategy:
      fail-fast: true
      matrix:
        config:
          - { os: ubuntu-latest, target: 'x86_64-unknown-linux-gnu' }
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: ${{ matrix.config.target }}
          override: true      
      - uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: --check

  clippy:
    name: Clippy
    runs-on: ${{ matrix.config.os }}
    strategy:
      fail-fast: false
      matrix:
        config:
          - { os: ubuntu-latest, target: 'x86_64-unknown-linux-gnu' }
    steps:
    - uses: actions/checkout@v2
    - uses: actions-rs/toolchain@v1
      with:
        toolchain: stable
        target: ${{ matrix.config.target }}
        override: true   
    - uses: actions-rs/cargo@v1
      with:
        command: clippy

  test_all:
    name: TestAll
    runs-on: ${{ matrix.config.os }}
    strategy:
      fail-fast: false
      matrix:
        config:
          - { os: ubuntu-latest, target: 'x86_64-unknown-linux-gnu' }
          - { os: macos-latest, target: 'x86_64-apple-darwin' }
          - { os: windows-latest, target: 'x86_64-pc-windows-msvc' }

    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: ${{ matrix.config.target }}
          override: true      
      - uses: actions-rs/cargo@v1
        with:
          command: test
          args: --all-features

  test_serde:
    name: TestSerde
    runs-on: ${{ matrix.config.os }}
    strategy:
      fail-fast: false
      matrix:
        config:
          - { os: ubuntu-latest, target: 'x86_64-unknown-linux-gnu' }
          - { os: macos-latest, target: 'x86_64-apple-darwin' }
          - { os: windows-latest, target: 'x86_64-pc-windows-msvc' }

    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: ${{ matrix.config.target }}
          override: true      
      - uses: actions-rs/cargo@v1
        with:
          command: test
          args: --features serde

  test_setters:
    name: TestSetters
    runs-on: ${{ matrix.config.os }}
    strategy:
      fail-fast: false
      matrix:
        config:
          - { os: ubuntu-latest, target: 'x86_64-unknown-linux-gnu' }
          - { os: macos-latest, target: 'x86_64-apple-darwin' }
          - { os: windows-latest, target: 'x86_64-pc-windows-msvc' }

    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: ${{ matrix.config.target }}
          override: true      
      - uses: actions-rs/cargo@v1
        with:
          command: test
          args: --features generated_setters
  
  test_min:
    name: TestMin
    runs-on: ${{ matrix.config.os }}
    strategy:
      fail-fast: false
      matrix:
        config:
          - { os: ubuntu-latest, target: 'x86_64-unknown-linux-gnu' }
          - { os: macos-latest, target: 'x86_64-apple-darwin' }
          - { os: windows-latest, target: 'x86_64-pc-windows-msvc' }

    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: ${{ matrix.config.target }}
          override: true      
      - uses: actions-rs/cargo@v1
        with:
          command: test

  build_release:
    name: BuildRelease
    runs-on: ${{ matrix.config.os }}
    strategy:
      fail-fast: false
      matrix:
        config:
          - { os: ubuntu-latest, target: 'x86_64-unknown-linux-gnu' }
          - { os: macos-latest, target: 'x86_64-apple-darwin' }
          - { os: windows-latest, target: 'x86_64-pc-windows-msvc' }

    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: ${{ matrix.config.target }}
          override: true      
      - uses: actions-rs/cargo@v1
        with:
          command: build
          args: --release --all-features