diff --git a/apps/DEVELOPMENT.md b/apps/DEVELOPMENT.md index 42c1b01f..7120dcd7 100644 --- a/apps/DEVELOPMENT.md +++ b/apps/DEVELOPMENT.md @@ -5,10 +5,13 @@ This directory contains all prepackaged containerized applications for Archipela ## App Overview ### Bitcoin & Lightning -- **bitcoin-core**: Full Bitcoin node (ports: 8332, 8333) +- **bitcoin-core**: Full Bitcoin node (ports: 8332, 8333) - v24.0.0 - **lnd**: Lightning Network Daemon (ports: 9735, 10009, 8080) - **core-lightning**: Core Lightning implementation (ports: 9736, 9835) -- **btcpay-server**: Bitcoin payment processor (ports: 80, 443) +- **lightning-stack**: Complete Lightning implementation (ports: 9737, 10010, 8087) - v0.12.0 +- **btcpay-server**: Bitcoin payment processor (ports: 80, 443) - v1.12.0 +- **mempool**: Blockchain explorer (port: 4080) - v2.5.0 +- **fedimint**: Federated Bitcoin minting (ports: 8173, 8174) - v0.3.0 ### Nostr Relays - **nostr-rs-relay**: High-performance Rust relay (port: 8081) @@ -18,6 +21,18 @@ This directory contains all prepackaged containerized applications for Archipela - **web5-dwn**: Decentralized Web Node (port: 3000) - **did-wallet**: Web5 DID Wallet (port: 8083) +### Self-Hosted Services +- **home-assistant**: Home automation (port: 8123) - v2024.1.0 +- **grafana**: Monitoring and dashboards (port: 3001) - v10.2.0 +- **ollama**: Local AI models (port: 11434) - v0.1.0 +- **searxng**: Privacy search engine (port: 8888) - v2024.1.0 +- **onlyoffice**: Office suite (port: 8088) - v7.5.0 +- **penpot**: Design platform (port: 8089) - v2.0.0 + +### Custom Applications +- **endurain**: Application platform (port: 8085) - v1.0.0 +- **morphos-server**: MorphOS server (port: 8086) - v1.0.0 + ### Mesh Networking - **router**: Mesh routing and network management (ports: 8084, 5353, 1900) - **meshtastic**: LoRa mesh networking (ports: 4403, 1883) @@ -26,18 +41,16 @@ This directory contains all prepackaged containerized applications for Archipela All apps use unique base ports. In development mode, ports are offset by 10000 (configurable). -| App | Base Ports | Dev Ports (offset +10000) | -|-----|------------|---------------------------| -| bitcoin-core | 8332, 8333 | 18332, 18333 | -| lnd | 9735, 10009, 8080 | 19735, 20009, 18080 | -| core-lightning | 9736, 9835 | 19736, 19835 | -| btcpay-server | 80, 443 | 10080, 10443 | -| nostr-rs-relay | 8081 | 18081 | -| strfry | 8082 | 18082 | -| did-wallet | 8083 | 18083 | -| router | 8084, 5353, 1900 | 18084, 15353, 11900 | -| web5-dwn | 3000 | 13000 | -| meshtastic | 4403, 1883 | 14403, 11883 | +See [PORTS.md](./PORTS.md) for complete port mapping. + +Key apps: +- **bitcoin-core**: 8332, 8333 → 18332, 18333 +- **btcpay-server**: 80, 443 → 10080, 10443 +- **home-assistant**: 8123 → 18123 +- **grafana**: 3001 → 13001 +- **mempool**: 4080 → 14080 +- **ollama**: 11434 → 21434 +- **lightning-stack**: 9737, 10010, 8087 → 19737, 20010, 18087 ## Building Apps diff --git a/apps/PORTS.md b/apps/PORTS.md index 542cc747..74f183fe 100644 --- a/apps/PORTS.md +++ b/apps/PORTS.md @@ -4,35 +4,59 @@ This document lists all port assignments for Archipelago apps. ## Production Ports -| App | Port(s) | Protocol | Service | -|-----|---------|----------|---------| -| bitcoin-core | 8332, 8333 | TCP | RPC, P2P | -| lnd | 9735, 10009, 8080 | TCP | P2P, gRPC, REST | -| core-lightning | 9736, 9835 | TCP | P2P, gRPC | -| btcpay-server | 80, 443 | TCP | HTTP, HTTPS | -| nostr-rs-relay | 8081 | TCP | HTTP/WebSocket | -| strfry | 8082 | TCP | HTTP/WebSocket | -| did-wallet | 8083 | TCP | Web UI | -| router | 8084, 5353, 1900 | TCP/UDP | Web UI, mDNS, SSDP | -| web5-dwn | 3000 | TCP | HTTP API | -| meshtastic | 4403, 1883 | TCP | HTTP API, MQTT | +| App | Port(s) | Protocol | Service | Dev Port(s) | +|-----|---------|----------|---------|-------------| +| bitcoin-core | 8332, 8333 | TCP | RPC, P2P | 18332, 18333 | +| btcpay-server | 80, 443 | TCP | HTTP, HTTPS | 10080, 10443 | +| home-assistant | 8123 | TCP | Web UI | 18123 | +| grafana | 3001 | TCP | Web UI | 13001 | +| endurain | 8085 | TCP | Web UI | 18085 | +| fedimint | 8173, 8174 | TCP | API, Web UI | 18173, 18174 | +| morphos-server | 8086 | TCP | Web UI | 18086 | +| lightning-stack | 9737, 10010, 8087 | TCP | P2P, gRPC, REST | 19737, 20010, 18087 | +| mempool | 4080 | TCP | Web UI | 14080 | +| ollama | 11434 | TCP | API | 21434 | +| searxng | 8888 | TCP | Web UI | 18888 | +| onlyoffice | 8088 | TCP | Web UI | 18088 | +| penpot | 8089 | TCP | Web UI | 18089 | +| lnd | 9735, 10009, 8080 | TCP | P2P, gRPC, REST | 19735, 20009, 18080 | +| core-lightning | 9736, 9835 | TCP | P2P, gRPC | 19736, 19835 | +| nostr-rs-relay | 8081 | TCP | HTTP/WebSocket | 18081 | +| strfry | 8082 | TCP | HTTP/WebSocket | 18082 | +| did-wallet | 8083 | TCP | Web UI | 18083 | +| router | 8084, 5353, 1900 | TCP/UDP | Web UI, mDNS, SSDP | 18084, 15353, 11900 | +| web5-dwn | 3000 | TCP | HTTP API | 13000 | +| meshtastic | 4403, 1883 | TCP | HTTP API, MQTT | 14403, 11883 | ## Development Ports (Offset: +10000) In development mode, all ports are offset by 10000 to avoid conflicts with production services. -| App | Dev Port(s) | Access URL | -|-----|-------------|------------| -| bitcoin-core | 18332, 18333 | http://localhost:18332 | -| lnd | 19735, 20009, 18080 | http://localhost:18080 | -| core-lightning | 19736, 19835 | http://localhost:19835 | -| btcpay-server | 10080, 10443 | http://localhost:10080 | -| nostr-rs-relay | 18081 | http://localhost:18081 | -| strfry | 18082 | http://localhost:18082 | -| did-wallet | 18083 | http://localhost:18083 | -| router | 18084, 15353, 11900 | http://localhost:18084 | -| web5-dwn | 13000 | http://localhost:13000 | -| meshtastic | 14403, 11883 | http://localhost:14403 | +### Quick Access URLs (Development) + +| App | Dev URL | +|-----|----------| +| Bitcoin Core RPC | http://localhost:18332 | +| BTCPay Server | http://localhost:10080 | +| Home Assistant | http://localhost:18123 | +| Grafana | http://localhost:13001 | +| Endurain | http://localhost:18085 | +| Fedimint | http://localhost:18174 | +| MorphOS Server | http://localhost:18086 | +| Lightning Stack | http://localhost:18087 | +| Mempool | http://localhost:14080 | +| Ollama | http://localhost:21434 | +| SearXNG | http://localhost:18888 | +| OnlyOffice | http://localhost:18088 | +| Penpot | http://localhost:18089 | +| LND REST | http://localhost:18080 | +| Core Lightning | http://localhost:19835 | +| Nostr RS Relay | http://localhost:18081 | +| Strfry | http://localhost:18082 | +| DID Wallet | http://localhost:18083 | +| Router | http://localhost:18084 | +| Web5 DWN | http://localhost:13000 | +| Meshtastic | http://localhost:14403 | ## Port Conflict Resolution @@ -55,3 +79,10 @@ Or in the Archipelago config: [dev] port_offset = 10000 ``` + +## Port Ranges + +- **Bitcoin/Lightning**: 8000-10000 range +- **Web Services**: 3000-9000 range +- **System Services**: 10000+ range +- **Custom Apps**: 8000-9000 range diff --git a/apps/README.md b/apps/README.md index 3494e36c..f6377e3b 100644 --- a/apps/README.md +++ b/apps/README.md @@ -5,11 +5,13 @@ This directory contains app manifest definitions for containerized applications ## App Categories ### Bitcoin & Lightning -- `bitcoin-core/` - Bitcoin Core full node +- `bitcoin-core/` - Bitcoin Core full node (v24.0.0) - `lnd/` - Lightning Network Daemon - `core-lightning/` - Core Lightning (CLN) -- `btcpay-server/` - BTCPay Server payment processor -- `mempool/` - Mempool blockchain explorer +- `lightning-stack/` - Complete Lightning implementation (v0.12.0) +- `btcpay-server/` - BTCPay Server payment processor (v1.12.0) +- `mempool/` - Mempool blockchain explorer (v2.5.0) +- `fedimint/` - Federated Bitcoin minting (v0.3.0) ### Web5 & Decentralized Protocols - `nostr-rs-relay/` - High-performance Nostr relay (Rust) @@ -17,23 +19,21 @@ This directory contains app manifest definitions for containerized applications - `web5-dwn/` - Decentralized Web Node - `did-wallet/` - Web5 wallet with DID support +### Self-Hosted Services +- `home-assistant/` - Home automation (v2024.1.0) +- `grafana/` - Monitoring and dashboards (v10.2.0) +- `ollama/` - Local AI models (v0.1.0) +- `searxng/` - Privacy-respecting search engine (v2024.1.0) +- `onlyoffice/` - Office suite (v7.5.0) +- `penpot/` - Design platform (v2.0.0) + +### Custom Applications +- `endurain/` - Endurain application platform (v1.0.0) +- `morphos-server/` - MorphOS server (v1.0.0) + ### Mesh Networking & Routing - `meshtastic/` - Meshtastic LoRa mesh networking - `router/` - Mesh routing and local network management -- `cjdns/` - Encrypted mesh networking (cjdns) - -### Self-Hosted Services -- `homeassistant/` - Home automation -- `grafana/` - Monitoring and dashboards -- `searxng/` - Privacy-respecting search engine -- `onlyoffice/` - Office suite -- `ollama/` - Local AI models -- `penpot/` - Design tool - -### Other -- `fedimint/` - Federated e-cash mint -- `morphos-server/` - MorphOS server -- `a-b/` - A to B protocol ## Manifest Format @@ -46,3 +46,25 @@ Each app has a `manifest.yml` file defining: - Network configuration See `docs/app-manifest-spec.md` for the complete specification. + +## Quick Start + +### Build All Apps + +```bash +./build.sh +``` + +### Build Specific App + +```bash +./build.sh +``` + +### Development + +See [DEVELOPMENT.md](./DEVELOPMENT.md) for development guide and [QUICKSTART.md](./QUICKSTART.md) for quick start instructions. + +## Port Assignments + +See [PORTS.md](./PORTS.md) for complete port mapping. All apps use unique ports and are automatically offset in development mode. diff --git a/apps/ollama/Dockerfile b/apps/ollama/Dockerfile new file mode 100644 index 00000000..70d3ab0d --- /dev/null +++ b/apps/ollama/Dockerfile @@ -0,0 +1,5 @@ +# Ollama - uses official image +FROM ollama/ollama:latest + +# Default configuration is in the image +# No additional setup needed diff --git a/apps/ollama/manifest.yml b/apps/ollama/manifest.yml new file mode 100644 index 00000000..eb568aa0 --- /dev/null +++ b/apps/ollama/manifest.yml @@ -0,0 +1,47 @@ +app: + id: ollama + name: Ollama + version: 0.1.0 + description: Run large language models locally. Privacy-preserving AI on your node. + + container: + image: ollama/ollama:latest + image_signature: cosign://... + pull_policy: if-not-present + + dependencies: + - storage: 50Gi # Models can be large + + resources: + cpu_limit: 4 + memory_limit: 8Gi # LLMs need lots of RAM + disk_limit: 50Gi + + security: + capabilities: [] + readonly_root: false # Ollama needs write access for models + network_policy: isolated + apparmor_profile: ollama + + ports: + - host: 11434 + container: 11434 + protocol: tcp # API + + volumes: + - type: bind + source: /var/lib/archipelago/ollama + target: /root/.ollama + options: [rw] + + environment: + - OLLAMA_HOST=0.0.0.0:11434 + - OLLAMA_KEEP_ALIVE=24h + + health_check: + type: http + endpoint: http://localhost:11434 + path: /api/tags + interval: 30s + timeout: 10s + retries: 3 diff --git a/apps/onlyoffice/Dockerfile b/apps/onlyoffice/Dockerfile new file mode 100644 index 00000000..284c1374 --- /dev/null +++ b/apps/onlyoffice/Dockerfile @@ -0,0 +1,5 @@ +# OnlyOffice - uses official image +FROM onlyoffice/documentserver:7.5.0 + +# Default configuration is in the image +# No additional setup needed diff --git a/apps/onlyoffice/manifest.yml b/apps/onlyoffice/manifest.yml new file mode 100644 index 00000000..61012802 --- /dev/null +++ b/apps/onlyoffice/manifest.yml @@ -0,0 +1,47 @@ +app: + id: onlyoffice + name: OnlyOffice + version: 7.5.0 + description: Office suite and document collaboration. Edit documents, spreadsheets, and presentations. + + container: + image: onlyoffice/documentserver:7.5.0 + image_signature: cosign://... + pull_policy: if-not-present + + dependencies: + - storage: 10Gi + + resources: + cpu_limit: 4 + memory_limit: 4Gi + disk_limit: 10Gi + + security: + capabilities: [] + readonly_root: false # OnlyOffice needs write access + network_policy: isolated + apparmor_profile: onlyoffice + + ports: + - host: 8088 + container: 80 + protocol: tcp # Web UI + + volumes: + - type: bind + source: /var/lib/archipelago/onlyoffice + target: /var/www/onlyoffice/Data + options: [rw] + + environment: + - JWT_ENABLED=false + - JWT_SECRET=${ONLYOFFICE_JWT_SECRET} + + health_check: + type: http + endpoint: http://localhost:8088 + path: /healthcheck + interval: 30s + timeout: 5s + retries: 3 diff --git a/apps/penpot/Dockerfile b/apps/penpot/Dockerfile new file mode 100644 index 00000000..692155bd --- /dev/null +++ b/apps/penpot/Dockerfile @@ -0,0 +1,5 @@ +# Penpot - uses official image +FROM penpot/penpot:latest + +# Default configuration is in the image +# No additional setup needed diff --git a/apps/penpot/manifest.yml b/apps/penpot/manifest.yml new file mode 100644 index 00000000..593ca42e --- /dev/null +++ b/apps/penpot/manifest.yml @@ -0,0 +1,48 @@ +app: + id: penpot + name: Penpot + version: 2.0.0 + description: Open-source design and prototyping platform. Design tools for teams. + + container: + image: penpot/penpot:latest + image_signature: cosign://... + pull_policy: if-not-present + + dependencies: + - storage: 10Gi + + resources: + cpu_limit: 4 + memory_limit: 4Gi + disk_limit: 10Gi + + security: + capabilities: [] + readonly_root: true + network_policy: isolated + apparmor_profile: penpot + + ports: + - host: 8089 + container: 80 + protocol: tcp # Web UI + + volumes: + - type: bind + source: /var/lib/archipelago/penpot + target: /app/data + options: [rw] + + environment: + - PENPOT_PUBLIC_URI=http://localhost:8089 + - PENPOT_DATABASE_URI=postgresql://penpot:penpot@penpot-db:5432/penpot + - PENPOT_REDIS_URI=redis://penpot-redis:6379 + + health_check: + type: http + endpoint: http://localhost:8089 + path: /api/health + interval: 30s + timeout: 5s + retries: 3 diff --git a/apps/searxng/Dockerfile b/apps/searxng/Dockerfile new file mode 100644 index 00000000..b7bf715e --- /dev/null +++ b/apps/searxng/Dockerfile @@ -0,0 +1,5 @@ +# SearXNG - uses official image +FROM searxng/searxng:2024.1.0 + +# Default configuration is in the image +# No additional setup needed diff --git a/apps/searxng/manifest.yml b/apps/searxng/manifest.yml new file mode 100644 index 00000000..4d1bff9d --- /dev/null +++ b/apps/searxng/manifest.yml @@ -0,0 +1,47 @@ +app: + id: searxng + name: SearXNG + version: 2024.1.0 + description: Privacy-respecting metasearch engine. Search the web without tracking. + + container: + image: searxng/searxng:2024.1.0 + image_signature: cosign://... + pull_policy: if-not-present + + dependencies: + - storage: 2Gi + + resources: + cpu_limit: 2 + memory_limit: 1Gi + disk_limit: 2Gi + + security: + capabilities: [] + readonly_root: true + network_policy: isolated + apparmor_profile: searxng + + ports: + - host: 8888 + container: 8080 + protocol: tcp # Web UI + + volumes: + - type: bind + source: /var/lib/archipelago/searxng + target: /etc/searxng + options: [rw] + + environment: + - SEARXNG_HOSTNAME=localhost + - SEARXNG_BIND_ADDRESS=0.0.0.0:8080 + + health_check: + type: http + endpoint: http://localhost:8888 + path: / + interval: 30s + timeout: 5s + retries: 3 diff --git a/core/archipelago/src/api/handler.rs b/core/archipelago/src/api/handler.rs index 76cee617..e4ce7ec9 100644 --- a/core/archipelago/src/api/handler.rs +++ b/core/archipelago/src/api/handler.rs @@ -24,19 +24,18 @@ impl ApiHandler { }) } - pub async fn handle_request(&self, req: Request) -> Result>> - where - B: http_body::Body + Send + 'static, - B::Error: std::fmt::Display, - { - let path = req.uri().path(); - let method = req.method(); + pub async fn handle_request( + &self, + req: Request, + ) -> Result>> { + // Extract path and method before consuming req + let path = req.uri().path().to_string(); + let method = req.method().clone(); - // Convert Incoming body to bytes using http_body_util::BodyExt + // Convert body to bytes using http_body_util::BodyExt let (parts, body) = req.into_parts(); - // hyper::body::Incoming implements http_body::Body, and BodyExt extends it use http_body_util::BodyExt; - let collected = body.collect().await + let collected: http_body_util::Collected = body.collect().await .map_err(|_e| anyhow::anyhow!("Failed to read body"))?; let body_bytes = collected.to_bytes(); @@ -47,10 +46,10 @@ impl ApiHandler { // Route requests match (method, path.as_str()) { - (&Method::POST, "/rpc/v1") => { + (Method::POST, "/rpc/v1") => { self.rpc_handler.handle(req_with_bytes).await } - (&Method::GET, "/health") => { + (Method::GET, "/health") => { Ok(Response::builder() .status(StatusCode::OK) .body(Full::new(Bytes::from("OK"))) diff --git a/core/target/debug/.fingerprint/archipelago-d6e22276b7d151e0/output-bin-archipelago b/core/target/debug/.fingerprint/archipelago-d6e22276b7d151e0/output-bin-archipelago index 10c426ce..cf151139 100644 --- a/core/target/debug/.fingerprint/archipelago-d6e22276b7d151e0/output-bin-archipelago +++ b/core/target/debug/.fingerprint/archipelago-d6e22276b7d151e0/output-bin-archipelago @@ -1,3 +1,4 @@ +{"$message_type":"diagnostic","message":"cannot find type `Incoming` in crate `http_body_util`","code":{"code":"E0425","explanation":"An unresolved name was used.\n\nErroneous code examples:\n\n```compile_fail,E0425\nsomething_that_doesnt_exist::foo;\n// error: unresolved name `something_that_doesnt_exist::foo`\n\n// or:\n\ntrait Foo {\n fn bar() {\n Self; // error: unresolved name `Self`\n }\n}\n\n// or:\n\nlet x = unknown_variable; // error: unresolved name `unknown_variable`\n```\n\nPlease verify that the name wasn't misspelled and ensure that the\nidentifier being referred to is valid for the given situation. Example:\n\n```\nenum something_that_does_exist {\n Foo,\n}\n```\n\nOr:\n\n```\nmod something_that_does_exist {\n pub static foo : i32 = 0i32;\n}\n\nsomething_that_does_exist::foo; // ok!\n```\n\nOr:\n\n```\nlet unknown_variable = 12u32;\nlet x = unknown_variable; // ok!\n```\n\nIf the item is not defined in the current module, it must be imported using a\n`use` statement, like so:\n\n```\n# mod foo { pub fn bar() {} }\n# fn main() {\nuse foo::bar;\nbar();\n# }\n```\n\nIf the item you are importing is not defined in some super-module of the\ncurrent module, then it must also be declared as public (e.g., `pub fn`).\n"},"level":"error","spans":[{"file_name":"archipelago/src/api/handler.rs","byte_start":723,"byte_end":731,"line_start":29,"line_end":29,"column_start":38,"column_end":46,"is_primary":true,"text":[{"text":" req: Request,","highlight_start":38,"highlight_end":46}],"label":"not found in `http_body_util`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"consider importing one of these structs","code":null,"level":"help","spans":[{"file_name":"archipelago/src/api/handler.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1,"is_primary":true,"text":[{"text":"use crate::api::rpc::RpcHandler;","highlight_start":1,"highlight_end":1}],"label":null,"suggested_replacement":"use std::net::Incoming;\n","suggestion_applicability":"MaybeIncorrect","expansion":null},{"file_name":"archipelago/src/api/handler.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1,"is_primary":true,"text":[{"text":"use crate::api::rpc::RpcHandler;","highlight_start":1,"highlight_end":1}],"label":null,"suggested_replacement":"use std::os::unix::net::Incoming;\n","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null},{"message":"if you import `Incoming`, refer to it directly","code":null,"level":"help","spans":[{"file_name":"archipelago/src/api/handler.rs","byte_start":707,"byte_end":723,"line_start":29,"line_end":29,"column_start":22,"column_end":38,"is_primary":true,"text":[{"text":" req: Request,","highlight_start":22,"highlight_end":38}],"label":null,"suggested_replacement":"","suggestion_applicability":"Unspecified","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0425]\u001b[0m\u001b[1m: cannot find type `Incoming` in crate `http_body_util`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0marchipelago/src/api/handler.rs:29:38\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m29\u001b[0m \u001b[1m\u001b[94m|\u001b[0m req: Request,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^\u001b[0m \u001b[1m\u001b[91mnot found in `http_body_util`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[96mhelp\u001b[0m: consider importing one of these structs\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m1\u001b[0m \u001b[92m+ use std::net::Incoming;\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m1\u001b[0m \u001b[92m+ use std::os::unix::net::Incoming;\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[96mhelp\u001b[0m: if you import `Incoming`, refer to it directly\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m29\u001b[0m \u001b[91m- \u001b[0m req: Request<\u001b[91mhttp_body_util::\u001b[0mIncoming>,\n\u001b[1m\u001b[94m29\u001b[0m \u001b[92m+ \u001b[0m req: Request,\n \u001b[1m\u001b[94m|\u001b[0m\n\n"} {"$message_type":"diagnostic","message":"unused import: `error`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"archipelago/src/main.rs","byte_start":175,"byte_end":180,"line_start":6,"line_end":6,"column_start":21,"column_end":26,"is_primary":true,"text":[{"text":"use tracing::{info, error};","highlight_start":21,"highlight_end":26}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"archipelago/src/main.rs","byte_start":173,"byte_end":180,"line_start":6,"line_end":6,"column_start":19,"column_end":26,"is_primary":true,"text":[{"text":"use tracing::{info, error};","highlight_start":19,"highlight_end":26}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"archipelago/src/main.rs","byte_start":168,"byte_end":169,"line_start":6,"line_end":6,"column_start":14,"column_end":15,"is_primary":true,"text":[{"text":"use tracing::{info, error};","highlight_start":14,"highlight_end":15}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"archipelago/src/main.rs","byte_start":180,"byte_end":181,"line_start":6,"line_end":6,"column_start":26,"column_end":27,"is_primary":true,"text":[{"text":"use tracing::{info, error};","highlight_start":26,"highlight_end":27}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `error`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0marchipelago/src/main.rs:6:21\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m6\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use tracing::{info, error};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default\n\n"} {"$message_type":"diagnostic","message":"unused import: `hyper_util::rt::TokioIo`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"archipelago/src/api/handler.rs","byte_start":197,"byte_end":220,"line_start":7,"line_end":7,"column_start":5,"column_end":28,"is_primary":true,"text":[{"text":"use hyper_util::rt::TokioIo;","highlight_start":5,"highlight_end":28}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the whole `use` item","code":null,"level":"help","spans":[{"file_name":"archipelago/src/api/handler.rs","byte_start":193,"byte_end":222,"line_start":7,"line_end":8,"column_start":1,"column_end":1,"is_primary":true,"text":[{"text":"use hyper_util::rt::TokioIo;","highlight_start":1,"highlight_end":29},{"text":"use std::sync::Arc;","highlight_start":1,"highlight_end":1}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `hyper_util::rt::TokioIo`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0marchipelago/src/api/handler.rs:7:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m7\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use hyper_util::rt::TokioIo;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\n"} {"$message_type":"diagnostic","message":"unused import: `tokio::sync::RwLock`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"archipelago/src/api/rpc.rs","byte_start":272,"byte_end":291,"line_start":9,"line_end":9,"column_start":5,"column_end":24,"is_primary":true,"text":[{"text":"use tokio::sync::RwLock;","highlight_start":5,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the whole `use` item","code":null,"level":"help","spans":[{"file_name":"archipelago/src/api/rpc.rs","byte_start":268,"byte_end":293,"line_start":9,"line_end":10,"column_start":1,"column_end":1,"is_primary":true,"text":[{"text":"use tokio::sync::RwLock;","highlight_start":1,"highlight_end":25},{"text":"use tracing::{debug, error};","highlight_start":1,"highlight_end":1}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `tokio::sync::RwLock`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0marchipelago/src/api/rpc.rs:9:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m9\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use tokio::sync::RwLock;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^\u001b[0m\n\n"} @@ -7,13 +8,10 @@ {"$message_type":"diagnostic","message":"unused import: `tokio::sync::RwLock`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"archipelago/src/container/dev_orchestrator.rs","byte_start":246,"byte_end":265,"line_start":8,"line_end":8,"column_start":5,"column_end":24,"is_primary":true,"text":[{"text":"use tokio::sync::RwLock;","highlight_start":5,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the whole `use` item","code":null,"level":"help","spans":[{"file_name":"archipelago/src/container/dev_orchestrator.rs","byte_start":242,"byte_end":267,"line_start":8,"line_end":9,"column_start":1,"column_end":1,"is_primary":true,"text":[{"text":"use tokio::sync::RwLock;","highlight_start":1,"highlight_end":25},{"text":"","highlight_start":1,"highlight_end":1}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `tokio::sync::RwLock`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0marchipelago/src/container/dev_orchestrator.rs:8:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m8\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use tokio::sync::RwLock;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^\u001b[0m\n\n"} {"$message_type":"diagnostic","message":"unused import: `data_manager::DevDataManager`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"archipelago/src/container/mod.rs","byte_start":57,"byte_end":85,"line_start":4,"line_end":4,"column_start":9,"column_end":37,"is_primary":true,"text":[{"text":"pub use data_manager::DevDataManager;","highlight_start":9,"highlight_end":37}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the whole `use` item","code":null,"level":"help","spans":[{"file_name":"archipelago/src/container/mod.rs","byte_start":49,"byte_end":87,"line_start":4,"line_end":5,"column_start":1,"column_end":1,"is_primary":true,"text":[{"text":"pub use data_manager::DevDataManager;","highlight_start":1,"highlight_end":38},{"text":"pub use dev_orchestrator::DevContainerOrchestrator;","highlight_start":1,"highlight_end":1}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `data_manager::DevDataManager`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0marchipelago/src/container/mod.rs:4:9\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m4\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub use data_manager::DevDataManager;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\n"} {"$message_type":"diagnostic","message":"unused import: `info`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"archipelago/src/server.rs","byte_start":292,"byte_end":296,"line_start":10,"line_end":10,"column_start":22,"column_end":26,"is_primary":true,"text":[{"text":"use tracing::{error, info};","highlight_start":22,"highlight_end":26}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"archipelago/src/server.rs","byte_start":290,"byte_end":296,"line_start":10,"line_end":10,"column_start":20,"column_end":26,"is_primary":true,"text":[{"text":"use tracing::{error, info};","highlight_start":20,"highlight_end":26}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"archipelago/src/server.rs","byte_start":284,"byte_end":285,"line_start":10,"line_end":10,"column_start":14,"column_end":15,"is_primary":true,"text":[{"text":"use tracing::{error, info};","highlight_start":14,"highlight_end":15}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"archipelago/src/server.rs","byte_start":296,"byte_end":297,"line_start":10,"line_end":10,"column_start":26,"column_end":27,"is_primary":true,"text":[{"text":"use tracing::{error, info};","highlight_start":26,"highlight_end":27}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `info`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0marchipelago/src/server.rs:10:22\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m10\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use tracing::{error, info};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^\u001b[0m\n\n"} -{"$message_type":"diagnostic","message":"use of unstable library feature `str_as_str`","code":{"code":"E0658","explanation":"An unstable feature was used.\n\nErroneous code example:\n\n```compile_fail,E0658\nuse std::intrinsics; // error: use of unstable library feature `core_intrinsics`\n```\n\nIf you're using a stable or a beta version of rustc, you won't be able to use\nany unstable features. In order to do so, please switch to a nightly version of\nrustc (by using [rustup]).\n\nIf you're using a nightly version of rustc, just add the corresponding feature\nto be able to use it:\n\n```\n#![feature(core_intrinsics)]\n\nuse std::intrinsics; // ok!\n```\n\n[rustup]: https://rust-lang.github.io/rustup/concepts/channels.html\n"},"level":"error","spans":[{"file_name":"archipelago/src/api/handler.rs","byte_start":1575,"byte_end":1581,"line_start":49,"line_end":49,"column_start":29,"column_end":35,"is_primary":true,"text":[{"text":" match (method, path.as_str()) {","highlight_start":29,"highlight_end":35}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"see issue #130366 for more information","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0658]\u001b[0m\u001b[1m: use of unstable library feature `str_as_str`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0marchipelago/src/api/handler.rs:49:29\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m49\u001b[0m \u001b[1m\u001b[94m|\u001b[0m match (method, path.as_str()) {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: see issue #130366 for more information\n\n"} -{"$message_type":"diagnostic","message":"cannot move out of `req` because it is borrowed","code":{"code":"E0505","explanation":"A value was moved out while it was still borrowed.\n\nErroneous code example:\n\n```compile_fail,E0505\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: Value) {}\n\nfn main() {\n let x = Value{};\n let _ref_to_val: &Value = &x;\n eat(x);\n borrow(_ref_to_val);\n}\n```\n\nHere, the function `eat` takes ownership of `x`. However,\n`x` cannot be moved because the borrow to `_ref_to_val`\nneeds to last till the function `borrow`.\nTo fix that you can do a few different things:\n\n* Try to avoid moving the variable.\n* Release borrow before move.\n* Implement the `Copy` trait on the type.\n\nExamples:\n\n```\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: &Value) {}\n\nfn main() {\n let x = Value{};\n\n let ref_to_val: &Value = &x;\n eat(&x); // pass by reference, if it's possible\n borrow(ref_to_val);\n}\n```\n\nOr:\n\n```\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: Value) {}\n\nfn main() {\n let x = Value{};\n\n let ref_to_val: &Value = &x;\n borrow(ref_to_val);\n // ref_to_val is no longer used.\n eat(x);\n}\n```\n\nOr:\n\n```\n#[derive(Clone, Copy)] // implement Copy trait\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: Value) {}\n\nfn main() {\n let x = Value{};\n let ref_to_val: &Value = &x;\n eat(x); // it will be copied here.\n borrow(ref_to_val);\n}\n```\n\nFor more information on Rust's ownership system, take a look at the\n[References & Borrowing][references-and-borrowing] section of the Book.\n\n[references-and-borrowing]: https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"archipelago/src/api/handler.rs","byte_start":1023,"byte_end":1026,"line_start":36,"line_end":36,"column_start":29,"column_end":32,"is_primary":true,"text":[{"text":" let (parts, body) = req.into_parts();","highlight_start":29,"highlight_end":32}],"label":"move out of `req` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"archipelago/src/api/handler.rs","byte_start":861,"byte_end":864,"line_start":32,"line_end":32,"column_start":20,"column_end":23,"is_primary":false,"text":[{"text":" let path = req.uri().path();","highlight_start":20,"highlight_end":23}],"label":"borrow of `req` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"archipelago/src/api/handler.rs","byte_start":680,"byte_end":683,"line_start":27,"line_end":27,"column_start":43,"column_end":46,"is_primary":false,"text":[{"text":" pub async fn handle_request(&self, req: Request) -> Result>>","highlight_start":43,"highlight_end":46}],"label":"binding `req` declared here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"archipelago/src/api/handler.rs","byte_start":1570,"byte_end":1574,"line_start":49,"line_end":49,"column_start":24,"column_end":28,"is_primary":false,"text":[{"text":" match (method, path.as_str()) {","highlight_start":24,"highlight_end":28}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0505]\u001b[0m\u001b[1m: cannot move out of `req` because it is borrowed\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0marchipelago/src/api/handler.rs:36:29\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m27\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub async fn handle_request(&self, req: Request) -> Result: Service<...>` is not satisfied","code":{"code":"E0277","explanation":"You tried to use a type which doesn't implement some trait in a place which\nexpected that trait.\n\nErroneous code example:\n\n```compile_fail,E0277\n// here we declare the Foo trait with a bar method\ntrait Foo {\n fn bar(&self);\n}\n\n// we now declare a function which takes an object implementing the Foo trait\nfn some_func(foo: T) {\n foo.bar();\n}\n\nfn main() {\n // we now call the method with the i32 type, which doesn't implement\n // the Foo trait\n some_func(5i32); // error: the trait bound `i32 : Foo` is not satisfied\n}\n```\n\nIn order to fix this error, verify that the type you're using does implement\nthe trait. Example:\n\n```\ntrait Foo {\n fn bar(&self);\n}\n\n// we implement the trait on the i32 type\nimpl Foo for i32 {\n fn bar(&self) {}\n}\n\nfn some_func(foo: T) {\n foo.bar(); // we can now use this method since i32 implements the\n // Foo trait\n}\n\nfn main() {\n some_func(5i32); // ok!\n}\n```\n\nOr in a generic context, an erroneous code example would look like:\n\n```compile_fail,E0277\nfn some_func(foo: T) {\n println!(\"{:?}\", foo); // error: the trait `core::fmt::Debug` is not\n // implemented for the type `T`\n}\n\nfn main() {\n // We now call the method with the i32 type,\n // which *does* implement the Debug trait.\n some_func(5i32);\n}\n```\n\nNote that the error here is in the definition of the generic function. Although\nwe only call it with a parameter that does implement `Debug`, the compiler\nstill rejects the function. It must work with all possible input types. In\norder to make this example compile, we need to restrict the generic type we're\naccepting:\n\n```\nuse std::fmt;\n\n// Restrict the input type to types that implement Debug.\nfn some_func(foo: T) {\n println!(\"{:?}\", foo);\n}\n\nfn main() {\n // Calling the method is still fine, as i32 implements Debug.\n some_func(5i32);\n\n // This would fail to compile now:\n // struct WithoutDebug;\n // some_func(WithoutDebug);\n}\n```\n\nRust only looks at the signature of the called function, as such it must\nalready specify all requirements that will be used for every type parameter.\n"},"level":"error","spans":[{"file_name":"archipelago/src/server.rs","byte_start":1801,"byte_end":1808,"line_start":58,"line_end":58,"column_start":43,"column_end":50,"is_primary":true,"text":[{"text":" .serve_connection(io, service)","highlight_start":43,"highlight_end":50}],"label":"unsatisfied trait bound","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"archipelago/src/server.rs","byte_start":1780,"byte_end":1796,"line_start":58,"line_end":58,"column_start":22,"column_end":38,"is_primary":false,"text":[{"text":" .serve_connection(io, service)","highlight_start":22,"highlight_end":38}],"label":"required by a bound introduced by this call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the trait `hyper::service::service::Service>` is not implemented for `ServiceFn<{closure@server.rs:43:42}, _>`","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"the following other types implement trait `hyper::service::service::Service`:\n `&S` implements `hyper::service::service::Service`\n `&mut S` implements `hyper::service::service::Service`\n `Arc` implements `hyper::service::service::Service`\n `Box` implements `hyper::service::service::Service`\n `Rc` implements `hyper::service::service::Service`\n `TowerToHyperService` implements `hyper::service::service::Service`\n `hyper::service::util::ServiceFn` implements `Service>`","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `hyper_util::server::conn::auto::Builder::::serve_connection`","code":null,"level":"note","spans":[{"file_name":"/Users/tx1138/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-util-0.1.19/src/server/conn/auto/mod.rs","byte_start":5991,"byte_end":6007,"line_start":214,"line_end":214,"column_start":12,"column_end":28,"is_primary":false,"text":[{"text":" pub fn serve_connection(&self, io: I, service: S) -> Connection<'_, I, S, E>","highlight_start":12,"highlight_end":28}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/Users/tx1138/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-util-0.1.19/src/server/conn/auto/mod.rs","byte_start":6091,"byte_end":6141,"line_start":216,"line_end":216,"column_start":12,"column_end":62,"is_primary":true,"text":[{"text":" S: Service, Response = Response>,","highlight_start":12,"highlight_end":62}],"label":"required by this bound in `Builder::::serve_connection`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"the full name for the type has been written to '/Users/tx1138/Archipelago/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-5975222418946226519.txt'","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"consider using `--verbose` to print the full type name to the console","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `ServiceFn<{closure@...}, _>: Service<...>` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0marchipelago/src/server.rs:58:43\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m58\u001b[0m \u001b[1m\u001b[94m|\u001b[0m .serve_connection(io, service)\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m----------------\u001b[0m \u001b[1m\u001b[91m^^^^^^^\u001b[0m \u001b[1m\u001b[91munsatisfied trait bound\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94mrequired by a bound introduced by this call\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the trait `hyper::service::service::Service>` is not implemented for `ServiceFn<{closure@server.rs:43:42}, _>`\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the following other types implement trait `hyper::service::service::Service`:\n `&S` implements `hyper::service::service::Service`\n `&mut S` implements `hyper::service::service::Service`\n `Arc` implements `hyper::service::service::Service`\n `Box` implements `hyper::service::service::Service`\n `Rc` implements `hyper::service::service::Service`\n `TowerToHyperService` implements `hyper::service::service::Service`\n `hyper::service::util::ServiceFn` implements `Service>`\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `hyper_util::server::conn::auto::Builder::::serve_connection`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/tx1138/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-util-0.1.19/src/server/conn/auto/mod.rs:216:12\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m214\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub fn serve_connection(&self, io: I, service: S) -> Connectio\u001b[1m\u001b[94m...\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m----------------\u001b[0m \u001b[1m\u001b[94mrequired by a bound in this associated function\u001b[0m\n\u001b[1m\u001b[94m215\u001b[0m \u001b[1m\u001b[94m|\u001b[0m where\n\u001b[1m\u001b[94m216\u001b[0m \u001b[1m\u001b[94m|\u001b[0m S: Service, Response = Response>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `Builder::::serve_connection`\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: the full name for the type has been written to '/Users/tx1138/Archipelago/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-5975222418946226519.txt'\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: consider using `--verbose` to print the full type name to the console\n\n"} -{"$message_type":"diagnostic","message":"the trait bound `ServiceFn<{closure@...}, _>: Service<...>` is not satisfied","code":{"code":"E0277","explanation":"You tried to use a type which doesn't implement some trait in a place which\nexpected that trait.\n\nErroneous code example:\n\n```compile_fail,E0277\n// here we declare the Foo trait with a bar method\ntrait Foo {\n fn bar(&self);\n}\n\n// we now declare a function which takes an object implementing the Foo trait\nfn some_func(foo: T) {\n foo.bar();\n}\n\nfn main() {\n // we now call the method with the i32 type, which doesn't implement\n // the Foo trait\n some_func(5i32); // error: the trait bound `i32 : Foo` is not satisfied\n}\n```\n\nIn order to fix this error, verify that the type you're using does implement\nthe trait. Example:\n\n```\ntrait Foo {\n fn bar(&self);\n}\n\n// we implement the trait on the i32 type\nimpl Foo for i32 {\n fn bar(&self) {}\n}\n\nfn some_func(foo: T) {\n foo.bar(); // we can now use this method since i32 implements the\n // Foo trait\n}\n\nfn main() {\n some_func(5i32); // ok!\n}\n```\n\nOr in a generic context, an erroneous code example would look like:\n\n```compile_fail,E0277\nfn some_func(foo: T) {\n println!(\"{:?}\", foo); // error: the trait `core::fmt::Debug` is not\n // implemented for the type `T`\n}\n\nfn main() {\n // We now call the method with the i32 type,\n // which *does* implement the Debug trait.\n some_func(5i32);\n}\n```\n\nNote that the error here is in the definition of the generic function. Although\nwe only call it with a parameter that does implement `Debug`, the compiler\nstill rejects the function. It must work with all possible input types. In\norder to make this example compile, we need to restrict the generic type we're\naccepting:\n\n```\nuse std::fmt;\n\n// Restrict the input type to types that implement Debug.\nfn some_func(foo: T) {\n println!(\"{:?}\", foo);\n}\n\nfn main() {\n // Calling the method is still fine, as i32 implements Debug.\n some_func(5i32);\n\n // This would fail to compile now:\n // struct WithoutDebug;\n // some_func(WithoutDebug);\n}\n```\n\nRust only looks at the signature of the called function, as such it must\nalready specify all requirements that will be used for every type parameter.\n"},"level":"error","spans":[{"file_name":"archipelago/src/server.rs","byte_start":1831,"byte_end":1836,"line_start":59,"line_end":59,"column_start":22,"column_end":27,"is_primary":true,"text":[{"text":" .await","highlight_start":22,"highlight_end":27}],"label":"unsatisfied trait bound","suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"archipelago/src/server.rs","byte_start":1831,"byte_end":1836,"line_start":59,"line_end":59,"column_start":22,"column_end":27,"is_primary":false,"text":[{"text":" .await","highlight_start":22,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},"macro_decl_name":"desugaring of `await` expression","def_site_span":{"file_name":"archipelago/src/main.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1,"is_primary":false,"text":[],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}}],"children":[{"message":"the trait `hyper::service::service::Service>` is not implemented for `ServiceFn<{closure@server.rs:43:42}, _>`","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"the following other types implement trait `hyper::service::service::Service`:\n `&S` implements `hyper::service::service::Service`\n `&mut S` implements `hyper::service::service::Service`\n `Arc` implements `hyper::service::service::Service`\n `Box` implements `hyper::service::service::Service`\n `Rc` implements `hyper::service::service::Service`\n `TowerToHyperService` implements `hyper::service::service::Service`\n `hyper::service::util::ServiceFn` implements `Service>`","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"required for `Connection<'_, TokioIo<...>, ..., ...>` to implement `Future`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"required for `Connection<'_, TokioIo<...>, ..., ...>` to implement `IntoFuture`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the full name for the type has been written to '/Users/tx1138/Archipelago/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-5975222418946226519.txt'","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"consider using `--verbose` to print the full type name to the console","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the `.await`","code":null,"level":"help","spans":[{"file_name":"archipelago/src/server.rs","byte_start":1830,"byte_end":1836,"line_start":59,"line_end":59,"column_start":21,"column_end":27,"is_primary":true,"text":[{"text":" .await","highlight_start":21,"highlight_end":27}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `ServiceFn<{closure@...}, _>: Service<...>` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0marchipelago/src/server.rs:59:22\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m59\u001b[0m \u001b[1m\u001b[94m|\u001b[0m .await\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^\u001b[0m \u001b[1m\u001b[91munsatisfied trait bound\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the trait `hyper::service::service::Service>` is not implemented for `ServiceFn<{closure@server.rs:43:42}, _>`\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the following other types implement trait `hyper::service::service::Service`:\n `&S` implements `hyper::service::service::Service`\n `&mut S` implements `hyper::service::service::Service`\n `Arc` implements `hyper::service::service::Service`\n `Box` implements `hyper::service::service::Service`\n `Rc` implements `hyper::service::service::Service`\n `TowerToHyperService` implements `hyper::service::service::Service`\n `hyper::service::util::ServiceFn` implements `Service>`\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: required for `Connection<'_, TokioIo<...>, ..., ...>` to implement `Future`\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: required for `Connection<'_, TokioIo<...>, ..., ...>` to implement `IntoFuture`\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: the full name for the type has been written to '/Users/tx1138/Archipelago/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-5975222418946226519.txt'\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: consider using `--verbose` to print the full type name to the console\n\u001b[1m\u001b[96mhelp\u001b[0m: remove the `.await`\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m59\u001b[0m \u001b[91m- \u001b[0m \u001b[91m.await\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n\n"} -{"$message_type":"diagnostic","message":"unused import: `BodyExt`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"archipelago/src/api/handler.rs","byte_start":101,"byte_end":108,"line_start":4,"line_end":4,"column_start":22,"column_end":29,"is_primary":true,"text":[{"text":"use http_body_util::{BodyExt, Full};","highlight_start":22,"highlight_end":29}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `BodyExt`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0marchipelago/src/api/handler.rs:4:22\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m4\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use http_body_util::{BodyExt, Full};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"type annotations needed","code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"},"level":"error","spans":[{"file_name":"archipelago/src/api/handler.rs","byte_start":1136,"byte_end":1140,"line_start":38,"line_end":38,"column_start":59,"column_end":63,"is_primary":true,"text":[{"text":" let collected: http_body_util::Collected = body.collect().await","highlight_start":59,"highlight_end":63}],"label":"cannot infer type","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0282]\u001b[0m\u001b[1m: type annotations needed\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0marchipelago/src/api/handler.rs:38:59\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m38\u001b[0m \u001b[1m\u001b[94m|\u001b[0m let collected: http_body_util::Collected = body.collect().await\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^\u001b[0m \u001b[1m\u001b[91mcannot infer type\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"type annotations needed","code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"},"level":"error","spans":[{"file_name":"archipelago/src/api/handler.rs","byte_start":1136,"byte_end":1156,"line_start":38,"line_end":38,"column_start":59,"column_end":79,"is_primary":true,"text":[{"text":" let collected: http_body_util::Collected = body.collect().await","highlight_start":59,"highlight_end":79}],"label":"cannot infer type","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0282]\u001b[0m\u001b[1m: type annotations needed\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0marchipelago/src/api/handler.rs:38:59\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m38\u001b[0m \u001b[1m\u001b[94m|\u001b[0m let collected: http_body_util::Collected = body.collect().await\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91mcannot infer type\u001b[0m\n\n"} {"$message_type":"diagnostic","message":"unused import: `BodyExt`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"archipelago/src/api/rpc.rs","byte_start":127,"byte_end":134,"line_start":4,"line_end":4,"column_start":22,"column_end":29,"is_primary":true,"text":[{"text":"use http_body_util::{BodyExt, Full};","highlight_start":22,"highlight_end":29}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `BodyExt`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0marchipelago/src/api/rpc.rs:4:22\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m4\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use http_body_util::{BodyExt, Full};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^\u001b[0m\n\n"} {"$message_type":"diagnostic","message":"unused variable: `manifest_path`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"archipelago/src/container/dev_orchestrator.rs","byte_start":2370,"byte_end":2383,"line_start":68,"line_end":68,"column_start":9,"column_end":22,"is_primary":true,"text":[{"text":" manifest_path: &str,","highlight_start":9,"highlight_end":22}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"if this is intentional, prefix it with an underscore","code":null,"level":"help","spans":[{"file_name":"archipelago/src/container/dev_orchestrator.rs","byte_start":2370,"byte_end":2383,"line_start":68,"line_end":68,"column_start":9,"column_end":22,"is_primary":true,"text":[{"text":" manifest_path: &str,","highlight_start":9,"highlight_end":22}],"label":null,"suggested_replacement":"_manifest_path","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused variable: `manifest_path`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0marchipelago/src/container/dev_orchestrator.rs:68:9\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m68\u001b[0m \u001b[1m\u001b[94m|\u001b[0m manifest_path: &str,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[33mhelp: if this is intentional, prefix it with an underscore: `_manifest_path`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default\n\n"} -{"$message_type":"diagnostic","message":"aborting due to 4 previous errors; 12 warnings emitted","code":null,"level":"error","spans":[],"children":[],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: aborting due to 4 previous errors; 12 warnings emitted\u001b[0m\n\n"} -{"$message_type":"diagnostic","message":"Some errors have detailed explanations: E0277, E0505, E0658.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"\u001b[1mSome errors have detailed explanations: E0277, E0505, E0658.\u001b[0m\n"} -{"$message_type":"diagnostic","message":"For more information about an error, try `rustc --explain E0277`.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"\u001b[1mFor more information about an error, try `rustc --explain E0277`.\u001b[0m\n"} +{"$message_type":"diagnostic","message":"aborting due to 3 previous errors; 11 warnings emitted","code":null,"level":"error","spans":[],"children":[],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: aborting due to 3 previous errors; 11 warnings emitted\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"Some errors have detailed explanations: E0282, E0425.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"\u001b[1mSome errors have detailed explanations: E0282, E0425.\u001b[0m\n"} +{"$message_type":"diagnostic","message":"For more information about an error, try `rustc --explain E0282`.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"\u001b[1mFor more information about an error, try `rustc --explain E0282`.\u001b[0m\n"} diff --git a/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-13080571815649368370.txt b/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-13080571815649368370.txt new file mode 100644 index 00000000..e5a3d0bd --- /dev/null +++ b/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-13080571815649368370.txt @@ -0,0 +1,2 @@ +hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>: hyper::service::service::Service> +hyper_util::server::conn::auto::Connection<'_, TokioIo, hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>, TokioExecutor> diff --git a/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-13480109837208735393.txt b/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-13480109837208735393.txt new file mode 100644 index 00000000..e5a3d0bd --- /dev/null +++ b/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-13480109837208735393.txt @@ -0,0 +1,2 @@ +hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>: hyper::service::service::Service> +hyper_util::server::conn::auto::Connection<'_, TokioIo, hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>, TokioExecutor> diff --git a/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-16530815148847034584.txt b/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-16530815148847034584.txt new file mode 100644 index 00000000..e5a3d0bd --- /dev/null +++ b/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-16530815148847034584.txt @@ -0,0 +1,2 @@ +hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>: hyper::service::service::Service> +hyper_util::server::conn::auto::Connection<'_, TokioIo, hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>, TokioExecutor> diff --git a/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-2571119572960884352.txt b/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-2571119572960884352.txt new file mode 100644 index 00000000..e5a3d0bd --- /dev/null +++ b/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-2571119572960884352.txt @@ -0,0 +1,2 @@ +hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>: hyper::service::service::Service> +hyper_util::server::conn::auto::Connection<'_, TokioIo, hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>, TokioExecutor> diff --git a/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-258302589074998887.txt b/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-258302589074998887.txt new file mode 100644 index 00000000..e5a3d0bd --- /dev/null +++ b/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-258302589074998887.txt @@ -0,0 +1,2 @@ +hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>: hyper::service::service::Service> +hyper_util::server::conn::auto::Connection<'_, TokioIo, hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>, TokioExecutor> diff --git a/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-3085004636163476733.txt b/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-3085004636163476733.txt new file mode 100644 index 00000000..e5a3d0bd --- /dev/null +++ b/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-3085004636163476733.txt @@ -0,0 +1,2 @@ +hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>: hyper::service::service::Service> +hyper_util::server::conn::auto::Connection<'_, TokioIo, hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>, TokioExecutor> diff --git a/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-5297176294878950764.txt b/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-5297176294878950764.txt new file mode 100644 index 00000000..e5a3d0bd --- /dev/null +++ b/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-5297176294878950764.txt @@ -0,0 +1,2 @@ +hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>: hyper::service::service::Service> +hyper_util::server::conn::auto::Connection<'_, TokioIo, hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>, TokioExecutor> diff --git a/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-6440040218073080055.txt b/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-6440040218073080055.txt new file mode 100644 index 00000000..e5a3d0bd --- /dev/null +++ b/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-6440040218073080055.txt @@ -0,0 +1,2 @@ +hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>: hyper::service::service::Service> +hyper_util::server::conn::auto::Connection<'_, TokioIo, hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>, TokioExecutor> diff --git a/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-887693907502688589.txt b/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-887693907502688589.txt new file mode 100644 index 00000000..b2f3e044 --- /dev/null +++ b/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-887693907502688589.txt @@ -0,0 +1,2 @@ +hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:84}, _>: hyper::service::service::Service> +hyper_util::server::conn::auto::Connection<'_, TokioIo, hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:84}, _>, TokioExecutor> diff --git a/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-9696284442756867528.txt b/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-9696284442756867528.txt new file mode 100644 index 00000000..e5a3d0bd --- /dev/null +++ b/core/target/debug/deps/archipelago-d6e22276b7d151e0.long-type-9696284442756867528.txt @@ -0,0 +1,2 @@ +hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>: hyper::service::service::Service> +hyper_util::server::conn::auto::Connection<'_, TokioIo, hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>, TokioExecutor> diff --git a/core/target/debug/incremental/archipelago-2k8v5whz85vjs/s-hf5vnrc5wt-0o2s9xh-working/dep-graph.part.bin b/core/target/debug/incremental/archipelago-2k8v5whz85vjs/s-hf5vnrc5wt-0o2s9xh-working/dep-graph.part.bin deleted file mode 100644 index 1a9ee17e..00000000 Binary files a/core/target/debug/incremental/archipelago-2k8v5whz85vjs/s-hf5vnrc5wt-0o2s9xh-working/dep-graph.part.bin and /dev/null differ diff --git a/core/target/debug/incremental/archipelago-2k8v5whz85vjs/s-hf5vqutdnb-1w63c0p-working/dep-graph.part.bin b/core/target/debug/incremental/archipelago-2k8v5whz85vjs/s-hf5vqutdnb-1w63c0p-working/dep-graph.part.bin new file mode 100644 index 00000000..f07722d2 Binary files /dev/null and b/core/target/debug/incremental/archipelago-2k8v5whz85vjs/s-hf5vqutdnb-1w63c0p-working/dep-graph.part.bin differ diff --git a/core/target/debug/incremental/archipelago-2k8v5whz85vjs/s-hf5vnrc5wt-0o2s9xh.lock b/core/target/debug/incremental/archipelago-2k8v5whz85vjs/s-hf5vqutdnb-1w63c0p.lock similarity index 100% rename from core/target/debug/incremental/archipelago-2k8v5whz85vjs/s-hf5vnrc5wt-0o2s9xh.lock rename to core/target/debug/incremental/archipelago-2k8v5whz85vjs/s-hf5vqutdnb-1w63c0p.lock diff --git a/core/target/debug/incremental/archipelago-2k8v5whz85vjs/s-hf5vr0cpqm-1g0np9x-working/dep-graph.part.bin b/core/target/debug/incremental/archipelago-2k8v5whz85vjs/s-hf5vr0cpqm-1g0np9x-working/dep-graph.part.bin new file mode 100644 index 00000000..c91c6501 Binary files /dev/null and b/core/target/debug/incremental/archipelago-2k8v5whz85vjs/s-hf5vr0cpqm-1g0np9x-working/dep-graph.part.bin differ diff --git a/core/target/debug/incremental/archipelago-2k8v5whz85vjs/s-hf5vr0cpqm-1g0np9x.lock b/core/target/debug/incremental/archipelago-2k8v5whz85vjs/s-hf5vr0cpqm-1g0np9x.lock new file mode 100755 index 00000000..e69de29b