faststr 0.2.34

Faststr is a string library that reduces the cost of clone.
Documentation
name: 'CI'
on:
  pull_request:
  push:
    branches:
      - main

env:
  RUST_BACKTRACE: 1
  CARGO_TERM_COLOR: always

jobs:
  ci-pass:
    name: CI is green
    runs-on: ubuntu-latest
    needs:
      - test-linux
      - test-linux-aarch64
      - test-macos
      - test-windows
      - test-no-std
      - lint
    steps:
      - run: exit 0

  test-linux:
    runs-on: [self-hosted, Linux, amd64]

    steps:
    - uses: actions/checkout@v4
    - uses: dtolnay/rust-toolchain@stable
      with:
        components: rustfmt
    # - uses: Swatinem/rust-cache@v1
    - name: Run tests
      run: |
        cargo check
        cargo test

  test-linux-aarch64:
    runs-on: [self-hosted, Linux, aarch64]

    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt
      # - uses: Swatinem/rust-cache@v1
      - name: Run tests
        run: |
          cargo check
          cargo test

  test-macos:
    runs-on: [self-hosted, macOS]

    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt
      # - uses: Swatinem/rust-cache@v1
      - name: Run tests
        run: |
          cargo check
          cargo test

  test-windows:
    runs-on: [self-hosted, Windows]

    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt
      # - uses: Swatinem/rust-cache@v1
      - name: Run tests
        run: |
          cargo check
          cargo test

  test-no-std:
    runs-on: [self-hosted, Linux, amd64]
    strategy:
      matrix:
        target:
          - x86_64-unknown-none
          - aarch64-unknown-none
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt
      - name: Check no_std
        run: |
          rustup target add ${{ matrix.target }}
          cargo check --target ${{ matrix.target }} --no-default-features

  lint:
    runs-on: [self-hosted, Linux, amd64]

    steps:
    - uses: actions/checkout@v4
    - uses: dtolnay/rust-toolchain@stable
      with:
        components: rustfmt, clippy
    # - uses: Swatinem/rust-cache@v1
    - uses: actions-rs/clippy-check@v1
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
    - name: Format check
      run: |
        cargo fmt -- --check