vlen 0.4.2

High-performance variable-length integer encoding with bulk operations, const fn support, and no_std compatibility
Documentation
name: Rust

on:
  push:
    branches: ["main"]
  pull_request:
    branches: ["main"]

env:
  CARGO_TERM_COLOR: always
  RUSTFLAGS: -D warnings

jobs:
  test:
    name: Test (${{ matrix.os }}, ${{ matrix.features }})
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        # ubuntu is x86_64, macos is aarch64.
        os: [ubuntu-latest, macos-latest]
        features:
          - "--no-default-features"
          - "--features alloc"
          - "--features serde"
          - "--all-features"
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - name: Test
        run: cargo test ${{ matrix.features }} --verbose

  lint:
    name: Clippy and rustfmt
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: clippy, rustfmt
      - name: Clippy
        run: cargo clippy --all-features --all-targets -- -D warnings
      - name: Format
        run: cargo fmt --check

  msrv:
    name: MSRV (1.85)
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@1.85
      - name: Check
        run: cargo check --all-features

  no-std:
    name: no_std (thumbv7em-none-eabi)
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
        with:
          targets: thumbv7em-none-eabi
      - name: Build core
        run: cargo build --target thumbv7em-none-eabi --no-default-features
      - name: Build with all features
        run: cargo build --target thumbv7em-none-eabi --features full

  docs:
    name: Docs (docs.rs configuration)
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@nightly
      - name: Build docs
        run: cargo doc --all-features --no-deps
        env:
          RUSTDOCFLAGS: --cfg docsrs -D warnings

  wasm:
    name: wasm32-wasip1 (node WASI)
    runs-on: ubuntu-latest
    env:
      CARGO_TARGET_WASM32_WASIP1_RUNNER: node --no-warnings ${{ github.workspace }}/ci/wasi-runner.mjs
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
        with:
          targets: wasm32-wasip1
      - name: Test (portable paths)
        run: cargo test --target wasm32-wasip1 --test contract_tests --test property_tests --test tests
      - name: Test (simd128 kernels)
        run: cargo test --target wasm32-wasip1 --features simd --test contract_tests --test property_tests --test tests
        env:
          RUSTFLAGS: -C target-feature=+simd128