modbus-rtu 1.3.1

Standard Modbus RTU protocols
Documentation
name: Rust

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main", "v*" ]

env:
  CARGO_TERM_COLOR: always

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        feature_set:
          - name: default
            args: ""
          - name: no-default-features
            args: "--no-default-features"
          - name: master
            args: "--no-default-features --features master"
          - name: async
            args: "--no-default-features --features async"
          - name: unlimited-packet-size
            args: "--no-default-features --features unlimited_packet_size"
          - name: enforce-broadcast
            args: "--no-default-features --features enforce_broadcast"
          - name: master-with-unlimited-packet-size
            args: "--no-default-features --features 'master unlimited_packet_size'"
          - name: async-with-enforce-broadcast
            args: "--no-default-features --features 'async enforce_broadcast'"
          - name: all-features
            args: "--all-features"

    name: build (${{ matrix.feature_set.name }})

    steps:
      - uses: actions/checkout@v4
      - name: Install libudev
        run: sudo apt-get update && sudo apt-get install -y libudev-dev
      - name: Build
        run: cargo build --verbose ${{ matrix.feature_set.args }}
      - name: Run tests
        run: cargo test --verbose ${{ matrix.feature_set.args }}