# ═══════════════════════════════════════════════════════════════════════════════
# Rust / Cargo
# ═══════════════════════════════════════════════════════════════════════════════

# Compiled files and executables
debug/
target/

# Backup files generated by rustfmt
**/*.rs.bk

# MSVC Windows builds of rustc generate these (debugging information)
*.pdb

# Generated by cargo mutants — mutation testing data
**/mutants.out*/

# Fuzz corpus & artifacts (cargo-fuzz / libFuzzer)
fuzz/artifacts/
fuzz/corpus/

# Code-coverage output (cargo-tarpaulin, llvm-cov, etc.)
tarpaulin-report.html
*.profraw
*.profdata
lcov.info
coverage/

# Flamegraph / perf
flamegraph.svg
perf.data
perf.data.old

# Criterion benchmark output
target/criterion/

# ═══════════════════════════════════════════════════════════════════════════════
# Build artefacts (shared / static libraries)
# ═══════════════════════════════════════════════════════════════════════════════
*.d
*.so
*.dylib
*.dll
*.a
*.lib
*.o
*.obj

# ═══════════════════════════════════════════════════════════════════════════════
# Editors & IDEs
# ═══════════════════════════════════════════════════════════════════════════════

# VS Code
.vscode/

# JetBrains (RustRover, IntelliJ, CLion, …)
.idea/
*.iml
*.iws
*.ipr

# Vim / Neovim
*.swp
*.swo
*~
Session.vim
.netrwhist
tags

# Zed
# Zed editor settings that should NOT be tracked (local overrides)
# .zed/settings.json  ← un-comment to ignore local settings
# .zed/tasks.json     ← un-comment to ignore local tasks

# Emacs
\#*\#
.#*
*.elc
*~

# Sublime Text
*.sublime-workspace
*.sublime-project

# ═══════════════════════════════════════════════════════════════════════════════
# OS artefacts
# ═══════════════════════════════════════════════════════════════════════════════

# macOS
.DS_Store
.AppleDouble
.LSOverride
._*

# Windows
Thumbs.db
ehthumbs.db
Desktop.ini

# Linux
*~

# ═══════════════════════════════════════════════════════════════════════════════
# Environment & secrets
# ═══════════════════════════════════════════════════════════════════════════════
.env
.env.*
!.env.example
*.pem
*.key

# ═══════════════════════════════════════════════════════════════════════════════
# Logs & temporaries
# ═══════════════════════════════════════════════════════════════════════════════
*.log
tmp/
temp/

# ═══════════════════════════════════════════════════════════════════════════════
# VHS (charmbracelet/vhs) working directories
# ═══════════════════════════════════════════════════════════════════════════════
*.vhs/
.vhs/

# NOTE: generated GIFs in examples/vhs/generated/ are tracked via Git LFS
# (see .gitattributes) — do NOT ignore them here.
