zstring 0.2.4

Zero-termianted string lib, for use with C FFI.
Documentation
name: Rust

on:
  push: {}
  pull_request: {}

env:
  RUST_BACKTRACE: 1

jobs:
  test:
    name: Test Rust ${{ matrix.rust }} on ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        include:
        - { rust: stable, os: ubuntu-latest }
        - { rust: beta, os: ubuntu-latest }
        - { rust: nightly, os: ubuntu-latest }
    steps:
    - uses: hecrj/setup-rust-action@v1
      with:
        rust-version: ${{ matrix.rust }}
    - uses: actions/checkout@v3
    - run: |

        cargo test --verbose
        cargo test --verbose --all-features

  miri-test:
    name: Test with miri
    runs-on: ubuntu-latest
    env:
      MIRIFLAGS: -Zmiri-tag-raw-pointers
    steps:
    - uses: hecrj/setup-rust-action@v1
      with:
        rust-version: nightly
        components: miri
    - uses: actions/checkout@v3
    - run: |

        cargo miri test --verbose
        cargo miri test --verbose --all-features

  sanitizer-test:
    name: Test with -Zsanitizer=${{ matrix.sanitizer }}
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        sanitizer: [address, memory, leak]
    steps:
    - uses: actions/checkout@v3
    - uses: hecrj/setup-rust-action@v1
      with:
        rust-version: nightly
        components: rust-src
    - name: Test with sanitizer
      env:
        RUSTFLAGS: -Zsanitizer=${{ matrix.sanitizer }}
        RUSTDOCFLAGS: -Zsanitizer=${{ matrix.sanitizer }}
        ASAN_OPTIONS: detect_stack_use_after_return=1
        RUST_BACKTRACE: 0
      run: |

        cargo test -Zbuild-std --verbose --target=x86_64-unknown-linux-gnu --no-default-features
        cargo test -Zbuild-std --verbose --target=x86_64-unknown-linux-gnu --all-features