rust-async-tuyapi 1.2.0

This package is a rust port of the exellent NodeJS implementation by codetheweb for the Tuya API, adapted for async usage
Documentation
name: CI

on:
  push:
    branches: ['main']
    tags: ['v*']
  pull_request:
    types: ['opened', 'synchronize', 'reopened']

env:
  REGISTRY: ghcr.io
  IMAGE_NAME: ${{ github.repository }}
  CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
  CARGO_TERM_COLOR: always

jobs:
  check:
    name: Check
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: Swatinem/rust-cache@v2
      - run: cargo check

  test:
    name: Test suite
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: Swatinem/rust-cache@v2
      - run: cargo test

  fmt:
    name: Rustfmt
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: Swatinem/rust-cache@v2
      - run: cargo fmt --all -- --check

  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: Swatinem/rust-cache@v2
      - run: cargo clippy -- -D warnings

  build:
    name: Build project with musl target
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Install musl-tools
        run: |
          set -ex
          sudo apt-get update
          sudo apt-get install -y musl-tools

      - uses: Swatinem/rust-cache@v2

      - run: cargo build --release --target x86_64-unknown-linux-musl