ranges 0.4.0

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:
    - rustup target add $TARGET
    - cargo install cargo-nextest
    - 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 nextest run --all-features --target=$TARGET --profile ci; fi
  artifacts:
    when: always
    paths:
      - target
    reports:
      junit:
        - target/nextest/ci/junit.xml

  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
    - tags
  variables:
    TARGET: "x86_64-unknown-linux-gnu"
    #DISABLE_TESTS: 1
  artifacts:
    paths:
      - target
      - Cargo.lock
      - .cargo

#.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:
#    - rustup target add $TARGET
#    - cargo build --lib --all-features --target=$TARGET