cryptol_client 0.1.1

`cryptol_client` is a collection of utilities for connecting to and interacting with a running `cryptol-remote-api` instance.
Documentation
name: Build, Test, and Publish

on: [push, pull_request]

jobs:
  cargo-build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Rust Toolchain
        uses: dtolnay/rust-toolchain@stable
      - run: cargo build

  cargo-fmt:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Rust Toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt
      - run: cargo fmt --all -- --check

  cargo-clippy:
    runs-on: ubuntu-latest
    needs: cargo-build
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Rust Toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          components: clippy
      - run: cargo clippy --all-targets --all-features -- -Dclippy::all -Dclippy::pedantic

  cargo-doc:
    runs-on: ubuntu-latest
    needs: cargo-build
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Rust Toolchain
        uses: dtolnay/rust-toolchain@stable
      - run: cargo doc --no-deps

  cargo-test:
    runs-on: ubuntu-latest
    needs: cargo-build
    services:
      cryptol-remote-api:
        image: ghcr.io/weaversa/cryptol-remote-api-max-occupancy:latest
        credentials:
          username: ${{ github.repository_owner }}
          password: ${{ secrets.GITHUB_TOKEN }}
        ports:
          - 8080:8080
        options: -v ${{ github.workspace }}:/home/cryptol
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Rust Toolchain
        uses: dtolnay/rust-toolchain@stable
      - run: cargo test --all-targets
        env:
          CRYPTOL_SERVER_URL: http://0.0.0.0:8080

  crates_io_publish:
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    needs: [cargo-fmt, cargo-clippy, cargo-doc, cargo-test]
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Rust Toolchain
        uses: dtolnay/rust-toolchain@stable
      - run: cargo publish --token ${CRATES_IO_TOKEN}
        env:
          CRATES_IO_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}