nng-c 1.11.1

High level bindings nng C library
Documentation
name: Rust

on:
  push:
    branches:
      - master
  pull_request:
    types: [opened, synchronize, reopened, ready_for_review]

jobs:
  build:
    runs-on: ${{ matrix.os }}
    if: github.event.pull_request.draft == false

    strategy:
      matrix:
        os: [macos-latest, windows-latest, ubuntu-latest]

    steps:
    - uses: actions/checkout@v5

    - name: Install Rust Unix
      if: runner.os != 'Windows'
      run: |
        if rustup --version >/dev/null 2>&1; then
            rustup update
        else
             curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal --default-toolchain stable
             echo ::add-path::$HOME/.cargo/bin
        fi
    - name: Install Rust Windows
      if: runner.os == 'Windows'
      run: |
        if (Get-Command "rustup" -ErrorAction SilentlyContinue) {
            rustup update
        } else {
            Invoke-WebRequest https://static.rust-lang.org/rustup/dist/i686-pc-windows-gnu/rustup-init.exe -OutFile rustup-init.exe
            ./rustup-init.exe -y --profile minimal --default-toolchain stable
            echo ::add-path::%USERPROFILE%\.cargo\bin
        }

    - name: Rust version
      run: |
        cargo --version
        rustc --version

    - name: Check (no features)
      run: cargo check

    - name: Test
      run: cargo test --features websocket,tls,log,tracing --release