spin-sdk 5.2.0

The Spin Rust SDK makes it easy to build Spin components in Rust.
Documentation
name: Rust
on:
  push:
    branches: ["main", "v*"]
    tags: ["v*"]
  pull_request:
    branches: ["main", "v*"]
    paths-ignore:
      - "README.md"
 
env:
  RUST_VERSION: "1.93"
 
jobs:
  lint-and-test:
    name: Lint and Test
    runs-on: "ubuntu-latest"
    steps:
      - uses: actions/checkout@v4

      - uses: Swatinem/rust-cache@v2
        with:
          shared-key: "${{ runner.os }}-full-${{ hashFiles('./Cargo.lock') }}"

      - name: Install Rust toolchain
        shell: bash
        run: |
          rustup toolchain install ${{ env.RUST_VERSION }} --component clippy --component rustfmt
          rustup default ${{ env.RUST_VERSION }}
          rustup target add wasm32-wasip1

      - name: Lint
        shell: bash
        run: |
          cargo fmt --all -- --check
          cargo clippy --workspace --all-targets -- -D warnings
        
      - name: Check with no-default-features
        shell: bash
        run: cargo check --no-default-features

      - name: Check with `json` feature only
        shell: bash
        run: cargo check --no-default-features --features json

      - name: Check with `postgres4-types` feature only
        shell: bash
        run: cargo check --no-default-features --features postgres4-types

      - name: Test
        shell: bash
        run: cargo test --workspace
        
      - name: Validate docs examples
        shell: bash
        run: cargo test --doc

      - name: audit dependencies
        run: |
          cargo install cargo-audit --locked
          cargo audit