repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.5.0
    hooks:
      - id: trailing-whitespace
      - id: end-of-file-fixer
      - id: check-yaml
      - id: check-toml

  - repo: https://github.com/FeryET/pre-commit-rust
    rev: v1.2.1
    hooks:
      - id: fmt
        name: cargo fmt
        description: Format Rust code with rustfmt
        always_run: true
      - id: test
        name: cargo test
        description: Run Rust tests
        always_run: true
        pass_filenames: false

  - repo: local
    hooks:
      - id: clippy-test
        name: Clippy Test
        description: Run comprehensive clippy linting
        entry: ./clippy_test.sh
        language: system
        files: \.rs$
        pass_filenames: false
        always_run: true
      - id: cargo-doc
        name: Cargo Doc
        description: Generate and check Rust documentation
        entry: cargo doc --no-deps
        language: system
        files: \.rs$
        pass_filenames: false
        always_run: true
      - id: cargo-test
        name: Cargo Test
        description: Run Rust tests
        entry: cargo test
        language: system
        files: \.rs$
        pass_filenames: false
        always_run: true
