axum-codec 0.0.20

A multi-codec extractor and response writer for Axum
Documentation
on:
  push:
    paths:
      - '**.rs'
      - '**.toml'
      - '**.yml'
      - '.git*'
      - 'Cargo.lock'
      - 'README.md' # it's included in the crate root
    branches:
      - main
  pull_request:
    branches:
      - main

name: ci

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v4
      - name: setup rust toolchain
        id: toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: nightly
          components: rustfmt, clippy, miri
      - name: setup cache
        id: cache
        uses: actions/cache@v4
        with:
          path: |
            ~/.cargo
            target
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}-rustc-${{ steps.toolchain.outputs.cachekey }}

      - name: install cargo hack
        if: steps.cache.outputs.cache-hit != 'true'
        run: cargo install cargo-hack --locked

      - name: cargo hack
        #        run: cargo hack check --feature-powerset --skip serde,macros,full-codecs,default --no-dev-deps --at-least-one-of bincode,bitcode,cbor,json,msgpack,toml,yaml,form --group-features cbor,json,msgpack,toml,yaml,form
        run: cargo hack check --feature-powerset --skip serde,macros,full-codecs,default --no-dev-deps --at-least-one-of bincode,bitcode,json,msgpack,toml,yaml,form --group-features json,msgpack,toml,yaml,form
      - name: cargo test
        run: cargo test
      - name: cargo miri test --tests extract
        run: cargo miri test
      - name: cargo fmt
        run: cargo fmt --all -- --check
      - name: cargo clippy
        run: cargo clippy --all-targets -- -D warnings