# Build
rust-project.json
user.bazelrc
/bazel-*
/out

# Cargo build artifacts
# (target/ is also used for platform configs, so we exclude Cargo outputs specifically)
/target/.rustc_info.json
/target/debug/
/target/release/
/target/thumbv7m-none-eabi/
/target/riscv32imac-unknown-none-elf/
/target/riscv32imafc-unknown-none-elf/
/target/x86_64-unknown-linux-gnu/

# Editors
.pw_ide/
.vscode/settings.json
.vscode/tasks.json
.vscode/pw_user_*.json
.vscode/*.bak.json
.idea/
.project
.cproject
.clangd
.clangd/
*.swp
*.swo
.#*

# Git
*.orig
*.BACKUP.*
*.BASE.*
*.LOCAL.*
*.REMOTE.*
*_BACKUP_*.txt
*_BASE_*.txt
*_LOCAL_*.txt
*_REMOTE_*.txt

# Other
pw_console-*logs.txt
.pw_console.user.yaml



# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
# Cargo.lock

# These are backup files generated by rustfmt
**/*.rs.bk

# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb

# OS files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

# Logs
*.log

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Coverage directory used by tools like istanbul
coverage/
*.lcov

# nyc test coverage
.nyc_output

# Dependency directories
node_modules/

# Optional npm cache directory
.npm

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
.env.test
.env.production
.env.local

# Rust-specific
# Generated by rustdoc
doc/

# Generated by mdbook
book/

# Backup files
*.bak
*.backup

# Temporary files
*.tmp
*.temp


# Local configuration
.cargo/config
!.cargo/config.toml

# Documentation build
/docs/book/

# Flamegraph output
flamegraph.svg
perf.data*

# Criterion benchmark output
criterion/

# Profiling data
*.profraw

# Cache directories
.cache/

# Local development
*.local

# Build scripts
build.rs.bk
