valid 0.3.1

Validate custom types by composing primitive validation functions. Use one common API for validating all kind of business rules including aspects of the application state. One common error type for all kind of constraint violations. It is designed to help with error messages that are meaningful to the user of an application.
Documentation
name: CI

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  test:
    name: Test - Rust ${{matrix.rust}} - ${{matrix.os}}

    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
        rust: [stable, beta, 1.39.0]

    runs-on: ${{ matrix.os }}

    steps:
      - name: Checkout repository
        uses: actions/checkout@v2

      - name: Install ${{matrix.rust}} toolchain
        uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: ${{matrix.rust}}
          override: true

      - name: Build
        run: cargo build --verbose

      - name: Run tests
        run: cargo test --verbose --no-fail-fast

      - name: Run tests --all-features
        run: cargo test --all-features --verbose --no-fail-fast

      - name: Run tests --features "serde1"
        run: cargo test --features "serde1" --verbose --no-fail-fast

      - name: Run tests --features "bigint"
        run: cargo test --features "bigint" --verbose --no-fail-fast

      - name: Run tests --features "bigdecimal"
        run: cargo test --features "bigdecimal" --verbose --no-fail-fast

      - name: Run tests --features "chrono"
        run: cargo test --features "chrono" --verbose --no-fail-fast

      - name: Run tests --features "regex"
        run: cargo test --features "regex" --verbose --no-fail-fast