{
    "name": "Rust Development",
    "build": {
        "dockerfile": "Dockerfile",
        "context": ".."
    },
    // Allow the container to use more memory for heavy link steps (cargo-llvm-cov)
    "runArgs": ["--memory=32g", "--memory-swap=40g"],
    // Enable Docker-in-Docker
    "features": {
        "ghcr.io/devcontainers/features/docker-in-docker:2": {}
    },
    // Configure tool-specific properties
    "customizations": {
        "vscode": {
            // Extensions to install in the container
            "extensions": [
                "rust-lang.rust-analyzer",
                "vadimcn.vscode-lldb",
                "dunstontc.vscode-docker-syntax",
                "chanhx.crabviz",
                "jeff-hykin.better-dockerfile-syntax",
                "ms-vscode-remote.remote-containers",
                "kennylong.kubernetes-yaml-formatter",
                "ms-azuretools.vscode-containers",
                "fill-labs.dependi",
                "p1c2u.docker-compose",
                "formulahendry.docker-explorer",
                "formulahendry.docker-extension-pack",
                "QuentinGruber.dockerfiletemplate",
                "tamasfe.even-better-toml",
                "ms-vscode.makefile-tools",
                "yzhang.markdown-all-in-one",
                "TakumiI.markdowntable",
                "MarcusElg.markdowntoolbar",
                "DavidAnson.vscode-markdownlint",
                "esbenp.prettier-vscode",
                "bodil.prettier-toml",
                "Gruntfuggly.todo-tree",
                "ms-vscode.vscode-websearchforcopilot",
                "redhat.vscode-yaml",
                "jock.svg",
                "SimonSiefke.svg-preview",
                "ms-python.isort",
                "donjayamanne.python-extension-pack",
                "498-00.pythonformat",
                "mechatroner.rainbow-csv",
                "ms-vscode.cpptools",
                "ms-python.autopep8",
                "Anthropic.claude-code"
            ]
        }
    },
    // Forward ports if needed (adjust as necessary)
    "forwardPorts": [
        3000,
        6784,
        17867,
        8000,
        1880
    ],
    // Mount your workspace
    "workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind",
    "workspaceFolder": "/workspace",
    // Keep container running
    "shutdownAction": "stopContainer",
    // Optional: Run commands after container creation
    "postCreateCommand": "rustc --version && cargo --version && python3 --version && node --version && npm --version && cargo llvm-cov --version"
}