ssd1306 0.10.0

I2C/SPI driver for the SSD1306 OLED display controller
Documentation
name: Build and test
on:
  push:
    branches-ignore:
      - '*.tmp'
    tags:
      - '*'
  pull_request:
  workflow_dispatch:

jobs:
  fmt:
    name: fmt
    runs-on: "ubuntu-latest"
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@1.84
        with:
          components: rustfmt
      - run: cargo fmt --all -- --check

  test:
    name: test
    runs-on: "ubuntu-latest"
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@1.84
      - run: cargo test --lib --target x86_64-unknown-linux-gnu
      - run: cargo test --doc --target x86_64-unknown-linux-gnu

  test-msrv:
    name: build with MSRV
    runs-on: "ubuntu-latest"
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@master
        with:
            toolchain: 1.75
      - run: cargo build --lib --target x86_64-unknown-linux-gnu
      - run: cargo build --lib --target x86_64-unknown-linux-gnu --features async
      - run: cargo doc --target x86_64-unknown-linux-gnu
      - run: cargo doc --target x86_64-unknown-linux-gnu --features async

  build:
    strategy:
      fail-fast: false
      matrix:
        target:
          -  arm-unknown-linux-gnueabi
          # Raspberry Pi 2, 3, etc
          - armv7-unknown-linux-gnueabihf
          # Linux
          - x86_64-unknown-linux-gnu
          - x86_64-unknown-linux-musl
          # Bare metal
          - thumbv6m-none-eabi
        include:
          - target: thumbv7em-none-eabi
            examples: true
          - target: thumbv7em-none-eabihf
            examples: true
          - target: thumbv7m-none-eabi
            examples: true
    name: ${{matrix.target}}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@1.84
        with:
          components: rustfmt
      - run: rustup target add ${{matrix.target}}
      - run: cargo build --target ${{matrix.target}} --all-features --release
      - if: ${{ matrix.examples }}
        run: cargo build --target ${{matrix.target}} --examples --release
      - if: ${{ matrix.examples }}
        run: cargo build --target ${{matrix.target}} --all-features --examples --release
      - run: cargo doc --all-features --target ${{matrix.target }}