ranges 0.3.3

This crate provides a generic alternative to core/std ranges, set-operations to work with them and a range set that can efficiently store them with the least amount of memory possible.
Documentation
.build_template:
  stage: build
  only:
    - merge_requests
    - external_pull_requests
  allow_failure: false
  variables:
    ENABLE_CACHE: "1"
  script:
    - cargo build --target=$TARGET
    - if [[ -z $DISABLE_TESTS ]]; then cargo build --examples --all-features --target=$TARGET; fi
    - if [[ -z $DISABLE_TESTS ]]; then cargo build --tests --all-features --target=$TARGET; fi
    - if [[ -z $DISABLE_TESTS ]]; then cargo test --all-features --target=$TARGET; fi
  artifacts:
    paths:
      - target
  cache:
    key: build
    paths:
      - .cargo
      - target

x86_64-unknown-linux-gnu:
  extends: .build_template
  only:
    - merge_requests
    - external_pull_requests
    - master # for the coverage report
  variables:
    TARGET: "x86_64-unknown-linux-gnu"
    #DISABLE_TESTS: 1
  artifacts:
    paths:
      - target
      - Cargo.lock
      - .cargo

# docker image doesn't exist for arm
.armv7-unknown-linux-gnueabihf:
  extends: .build_template
  tags:
    - armhf
  variables:
    TARGET: "armv7-unknown-linux-gnueabihf"
    DISABLE_TESTS: "1"

x86_64-pc-windows-gnu:
  extends: .build_template
  variables:
    CARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER: "x86_64-w64-mingw32-gcc"
    TARGET: "x86_64-pc-windows-gnu"
    DISABLE_TESTS: "1"
  script:
    - cargo build --lib --all-features --target=$TARGET