# -------------------------------------------------
# Rust / Cargo
# -------------------------------------------------

# Build output – everything Cargo puts here can be regenerated
/target/

node_modules/

# Cargo.lock is usually kept for binaries (applications) but can be ignored for libraries.
# Uncomment the line below if you prefer not to track it.
# Cargo.lock

# Cargo’s incremental compilation cache (added in recent Rust versions)
**/.cargo/registry
**/.cargo/git

# -------------------------------------------------
# IDE / Editor specific files
# -------------------------------------------------

# VS Code
.vscode/
*.code-workspace

# IntelliJ / CLion / RustRover
.idea/
*.iml

# Eclipse
.project
.metadata/

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

# Vim
*.swp
*.swo
.session
*.un~

# Emacs
*~
\#*\#
.#*
*.elc
auto-save-list
tramp

# Neovim backup files
[nN]viminfo

# Kate / KDevelop
*.kate-swp
.kdev4/

# JetBrains Rust plugin specific
rust-analyzer/

# -------------------------------------------------
# OS / System files
# -------------------------------------------------

# macOS
.DS_Store
.AppleDouble
.LSOverride
Icon?
__MACOSX/

# Windows
Thumbs.db
ehthumbs.db
Desktop.ini
$RECYCLE.BIN/

# Linux
*~
.nfs*

# -------------------------------------------------
# Miscellaneous generated files
# -------------------------------------------------

# Cargo test output (if you ever pipe to files)
*.profraw
*.profdata

# Benchmark / criterion output
criterion/

# Cargo doc output (if you generate docs locally)
/target/doc/

# Coverage reports
coverage/
*.lcov

# Log files
*.log

# Temporary files
tmp/
temp/
*.tmp

# -------------------------------------------------
# Optional: secrets / environment files
# -------------------------------------------------
# (Uncomment if you keep env files locally)
# .env
# .env.*

# -------------------------------------------------
# End of .gitignore
# -------------------------------------------------
