hashgraph-like-consensus 0.2.0

A lightweight Rust library for making binary decisions in networks using hashgraph-style consensus
Documentation
on:
  workflow_dispatch:
  pull_request:
  push:
    branches:
      - "main"

name: "CI"

env:
  PROTOC_VERSION: "3.25.3"

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Install stable toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt, clippy
      - uses: Swatinem/rust-cache@v2
        with:
          shared-key: "stable"
      - name: Install protoc
        uses: taiki-e/install-action@v2
        with:
          tool: protoc@${{ env.PROTOC_VERSION }}
      - name: Check formatting
        run: cargo fmt --all --check
      - name: Run clippy
        run: cargo clippy --all-features --tests -- -D warnings

  unused_dependencies:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@nightly
      - uses: Swatinem/rust-cache@v2
        with:
          shared-key: "nightly"
      - name: Install protoc
        uses: taiki-e/install-action@v2
        with:
          tool: protoc@${{ env.PROTOC_VERSION }}
      - name: Install cargo-udeps
        uses: taiki-e/install-action@cargo-udeps
      - name: Check for unused dependencies
        run: cargo +nightly udeps --all-targets

  tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@nightly
      - uses: Swatinem/rust-cache@v2
        with:
          shared-key: "nightly"
      - name: Install protoc
        uses: taiki-e/install-action@v2
        with:
          tool: protoc@${{ env.PROTOC_VERSION }}
      - name: Run tests
        run: cargo test --all-features --tests