# Generated by Cargo
# will have compiled files and executables
debug/
target/

# 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

# RustRover
#  JetBrains specific template is maintained in a separate JetBrains.gitignore that can
#  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
#  and can be added to the global gitignore or merged into this file.  For a more nuclear
#  option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/

.DS_Store

# Rust
target/
**/*.rs.bk
Cargo.lock
*.pdb

# C++
*.o
*.out
*.exe
*.obj
*.pdb
*.idb
*.ilk
*.user
*.sdf
*.suo
*.ncb
*.log
*.dSYM/
*.DS_Store

# Python
__pycache__/
*.py[cod]
*.pyo
*.pyd
*.egg-info/
*.env
*.venv
*.pytest_cache/
.mypy_cache/
.ruff_cache/
# `just docs` output (src/py/justfile): pdoc renders it from the package's own
# docstrings, so it is derived, not source. Anchored so the repo's own tracked
# docs/ tree is unaffected.
/src/py/docs/

temp/
data/

benchmark_data/
src/rust/fcb_core/tests/data/*.fcb
src/rust/fcb_core/tests/data/*.json
.cursorrules

*.fcb

!examples/**/*.fcb

# The conformance corpus IS committed: it is the shared oracle for four
# readers, the TypeScript CI has no Rust toolchain to regenerate it, and
# pinning the bytes is the point. `.fcb` bytes are pinned exactly (the writer
# is byte-reproducible). `.expected.jsonl` is pinned only up to JSON equality:
# the reader emits `CityObjects` and appearance theme maps from `HashMap`s
# whose iteration order varies per process, so two honest runs of `deser` over
# the same `.fcb` can differ byte-for-byte without differing in meaning. See
# scripts/gen_conformance.sh, which regenerates these files idempotently.
!conformance/*.fcb
.cursor/mcp.json

*.plist
flamegraph*
.roo
.serena/
*.so

build/

.claude/settings.local.json
.claude/worktrees/

# subagent-driven-development scratch (briefs, reports, review packages)
.superpowers/
.wrangler/

# C++ CMake build trees (build-native, build-curl, build-default, ...)
build-*/

# npm state wherever a tool drops it, and repo-root scratch data
node_modules/
/tmp/