indexmap 1.7.0

A hash table with consistent order and fast iteration. The indexmap is a hash table where the iteration order of the key-value pairs is independent of the hash values of the keys. It has the usual hash table functionality, it preserves insertion order except after removals, and it allows lookup of its elements by either hash table key or numerical index. A corresponding hash set type is also provided. This crate was initially published under the name ordermap, but it was renamed to indexmap.
Documentation
on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

name: Continuous integration

env:
  CARGO_TERM_COLOR: always
  CARGO_INCREMENTAL: 0

jobs:
  tests:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        include:
          - rust: 1.49.0 # MSRV
            features:
          - rust: stable
            features: serde
          - rust: stable
            features: rayon
          - rust: stable
            features: std
          - rust: beta
            features:
          - rust: nightly
            bench: test build benchmarks
          - rust: nightly
            features: test_low_transition_point

    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: ${{ matrix.rust }}
          override: true
      - name: Tests
        run: |
          cargo build --verbose --features "${{ matrix.features }}"
          cargo doc --verbose --features "${{ matrix.features }}"
          cargo test --verbose --features "${{ matrix.features }}"
          cargo test --release --verbose --features "${{ matrix.features }}"
      - name: Tests (serde)
        if: matrix.features == 'serde'
        run: |
          cargo test --verbose -p test-serde
      - name: Test run benchmarks
        if: matrix.bench != ''
        run: cargo test -v --benches

  nostd_build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        include:
          - rust: 1.49.0
            target: thumbv6m-none-eabi
          - rust: stable
            target: thumbv6m-none-eabi

    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: ${{ matrix.rust }}
          override: true
          target: ${{ matrix.target }}
      - name: Tests
        run: |
          cargo build -vv --target=${{ matrix.target }}
          cargo build -v -p test-nostd --target=${{ matrix.target }}

  clippy:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        rust:
          - beta
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: ${{ matrix.rust }}
          override: true
          components: clippy
      - run: cargo clippy