diff --git a/docs/PROTOCOL_BOUNTY_8.md b/docs/PROTOCOL_BOUNTY_8.md new file mode 100644 index 00000000..dc9f186e --- /dev/null +++ b/docs/PROTOCOL_BOUNTY_8.md @@ -0,0 +1,359 @@ +# RustChain Protocol Documentation (Bounty #8 Draft) + +## 1) Protocol Overview + +RustChain is a **Proof-of-Antiquity** blockchain (RIP-200) that rewards physical hardware identity over raw hash power. + +- Consensus principle: **1 CPU = 1 vote**, then weighted by antiquity/fingerprint validity. +- Focus: reward real vintage hardware (PowerPC-era, retro architectures) and penalize VM/emulator spoofing. +- Runtime stack (current implementation): Flask + SQLite node, miner scripts for Linux/macOS, signed transfer + pending ledger settlement. + +--- + +## 2) RIP-200 Consensus and Epoch Lifecycle + +### 2.1 High-level flow + +```mermaid +sequenceDiagram + participant Miner + participant Node as RustChain Node + participant Ledger as Epoch/Pending Ledger + participant Anchor as External Anchor (Ergo) + + Miner->>Node: POST /attest/challenge + Node-->>Miner: nonce + challenge context + Miner->>Miner: collect hardware signals + fingerprint checks + Miner->>Node: POST /attest/submit (signed attestation) + Node->>Node: validate shape, identity, fingerprint, anti-abuse + Node-->>Miner: attestation result (ok/deny) + + Miner->>Node: POST /epoch/enroll + Node->>Ledger: register miner in active epoch + + Note over Node,Ledger: Epoch window closes + Node->>Node: compute weights + rewards + Node->>Ledger: /rewards/settle -> pending credits + Node->>Anchor: anchor settlement digest/proof + Miner->>Node: query balance / withdraw +``` + +### 2.2 Epoch settlement + +At settlement, miners in epoch are weighted by hardware/fingerprint/consensus rules and paid from epoch pool. + +Conceptually: + +```text +reward_i = epoch_pool * weight_i / sum(weight_all_eligible_miners) +``` + +--- + +## 3) Attestation Flow (what miner sends, what node validates) + +## 3.1 Miner payload + +Attestation payload contains (simplified): + +- `miner` / `miner_id` +- `report` (nonce/commitment/derived timing entropy) +- `device` (family/arch/model/cpu/cores/memory/serial) +- `signals` (hostname/MAC list, etc.) +- `fingerprint` (results of checks) +- optional sidecar proof fields (if dual-mining mode enabled) + +## 3.2 Node validation gates + +Node-side validation includes: + +1. **Shape validation** for request body/fields +2. **Miner identifier validation** (allowed chars/length) +3. **Challenge/nonce consistency** +4. **Hardware signal sanity checks** +5. **Rate limit / anti-abuse checks by client IP / miner** +6. **Fingerprint pass/fail classification** +7. **Enrollment eligibility decision** + +If accepted, miner can call `/epoch/enroll` and participate in reward distribution. + +--- + +## 4) Hardware Fingerprinting (6+1) + +RustChain uses hardware-behavior checks to distinguish physical machines from VMs/emulators. + +Primary checks (implementation naming varies by miner/tooling): + +1. Clock-skew / oscillator drift +2. Cache timing characteristics +3. SIMD instruction identity/timing +4. Thermal drift entropy +5. Instruction-path jitter +6. Anti-emulation heuristics (hypervisor/container indicators) +7. (Optional hardening layer) serial/OUI consistency enforcement in node policies + +Why it matters: + +- prevents synthetic identity inflation +- keeps weight tied to **real** hardware behavior +- protects reward fairness across participants + +--- + +## 5) Token Economics (RTC) + +- Native token: **RTC** +- Reward source: epoch distribution + pending ledger confirmation paths +- Weight-driven payout: higher eligible weight gets larger epoch share +- Additional policy knobs exposed by endpoints (`/api/bounty-multiplier`, `/api/fee_pool`, etc.) + +> Note: precise emissions, premine, and multiplier schedules should be versioned in canonical tokenomics docs; this file documents protocol mechanics + API surfaces. + +--- + +## 6) Network Architecture + +```mermaid +graph TD + M1[Miner A] --> N[Attestation/Settlement Node] + M2[Miner B] --> N + M3[Miner C] --> N + + N --> P[(Pending Ledger / Epoch State)] + N --> X[Explorer/UI APIs] + N --> A[External Anchor (Ergo)] +``` + +Components: + +- **Miners**: generate attestation reports + enroll each epoch +- **Node**: validates attestations, computes rewards, exposes APIs +- **Pending ledger**: tracks pending confirmations/void/integrity operations +- **Explorer/API**: status, balances, miners, stats +- **Anchor layer**: external timestamp/proof anchoring + +--- + +## 7) Public API Reference (with curl examples) + +Base example: + +```bash +BASE="https://rustchain.org" +``` + +## 7.1 Health / status + +### GET `/health` +```bash +curl -sS "$BASE/health" +``` + +### GET `/ready` +```bash +curl -sS "$BASE/ready" +``` + +### GET `/ops/readiness` +```bash +curl -sS "$BASE/ops/readiness" +``` + +## 7.2 Miner discovery / stats + +### GET `/api/miners` +```bash +curl -sS "$BASE/api/miners" +``` + +### GET `/api/stats` +```bash +curl -sS "$BASE/api/stats" +``` + +### GET `/api/nodes` +```bash +curl -sS "$BASE/api/nodes" +``` + +## 7.3 Attestation + enrollment + +### POST `/attest/challenge` +```bash +curl -sS -X POST "$BASE/attest/challenge" -H 'Content-Type: application/json' -d '{}' +``` + +### POST `/attest/submit` +```bash +curl -sS -X POST "$BASE/attest/submit" \ + -H 'Content-Type: application/json' \ + -d '{"miner":"RTC_example","report":{"nonce":"n"},"device":{},"signals":{},"fingerprint":{}}' +``` + +### POST `/epoch/enroll` +```bash +curl -sS -X POST "$BASE/epoch/enroll" \ + -H 'Content-Type: application/json' \ + -d '{"miner_pubkey":"RTC_example","miner_id":"host-1","device":{"family":"x86","arch":"modern"}}' +``` + +### GET `/epoch` +```bash +curl -sS "$BASE/epoch" +``` + +## 7.4 Wallet / balances / transfer + +### GET `/balance/` +```bash +curl -sS "$BASE/balance/RTC_example" +``` + +### GET `/wallet/balance?miner_id=` +```bash +curl -sS "$BASE/wallet/balance?miner_id=RTC_example" +``` + +### POST `/wallet/transfer` +```bash +curl -sS -X POST "$BASE/wallet/transfer" \ + -H 'Content-Type: application/json' \ + -d '{"from":"RTC_a","to":"RTC_b","amount":1.25}' +``` + +### POST `/wallet/transfer/signed` +```bash +curl -sS -X POST "$BASE/wallet/transfer/signed" \ + -H 'Content-Type: application/json' \ + -d '{"from":"RTC_a","to":"RTC_b","amount":1.25,"signature":"...","pubkey":"..."}' +``` + +### GET `/wallet/ledger` +```bash +curl -sS "$BASE/wallet/ledger" +``` + +## 7.5 Pending ledger ops + +### GET `/pending/list` +```bash +curl -sS "$BASE/pending/list" +``` + +### POST `/pending/confirm` +```bash +curl -sS -X POST "$BASE/pending/confirm" -H 'Content-Type: application/json' -d '{"id":123}' +``` + +### POST `/pending/void` +```bash +curl -sS -X POST "$BASE/pending/void" -H 'Content-Type: application/json' -d '{"id":123,"reason":"invalid"}' +``` + +### GET `/pending/integrity` +```bash +curl -sS "$BASE/pending/integrity" +``` + +## 7.6 Rewards + mining economics + +### GET `/rewards/epoch/` +```bash +curl -sS "$BASE/rewards/epoch/1" +``` + +### POST `/rewards/settle` +```bash +curl -sS -X POST "$BASE/rewards/settle" -H 'Content-Type: application/json' -d '{}' +``` + +### GET `/api/bounty-multiplier` +```bash +curl -sS "$BASE/api/bounty-multiplier" +``` + +### GET `/api/fee_pool` +```bash +curl -sS "$BASE/api/fee_pool" +``` + +## 7.7 Explorer + machine details + +### GET `/explorer` +```bash +curl -sS "$BASE/explorer" | head +``` + +### GET `/api/miner//attestations` +```bash +curl -sS "$BASE/api/miner/RTC_example/attestations" +``` + +### GET `/api/miner_dashboard/` +```bash +curl -sS "$BASE/api/miner_dashboard/RTC_example" +``` + +## 7.8 P2P / beacon / headers (operator-facing public routes) + +- `POST /p2p/add_peer` +- `GET /p2p/blocks` +- `GET /p2p/ping` +- `GET /p2p/stats` +- `GET/POST /beacon/*` (`/beacon/digest`, `/beacon/envelopes`, `/beacon/submit`) +- `POST /headers/ingest_signed`, `GET /headers/tip` + +--- + +## 8) Operator/Admin API groups + +These are exposed routes but typically for controlled operator use: + +- OUI enforcement/admin: + - `/admin/oui_deny/list|add|remove|enforce` + - `/ops/oui/enforce` +- Governance rotation: + - `/gov/rotate/stage|commit|approve|message/` +- Metrics: + - `/metrics`, `/metrics_mac` +- Withdraw flows: + - `/withdraw/register|request|status/|history/` + +--- + +## 9) Security Model Notes + +- Trust boundary: client payload is untrusted; server performs strict type/shape checks. +- Identity hardening: IP-based anti-abuse + hardware fingerprinting + serial/OUI controls. +- Transfer hardening: signed transfer endpoint for stronger authorization path. +- Settlement auditability: pending ledger + integrity endpoints + external anchoring. + +--- + +## 10) Glossary + +- **RIP-200**: RustChain Iterative Protocol v200; Proof-of-Antiquity consensus design. +- **Proof-of-Antiquity**: consensus weighting emphasizing vintage/real hardware identity. +- **Epoch**: reward accounting window; miners enroll and settle per epoch. +- **Attestation**: miner proof packet (hardware signals + report + fingerprint). +- **Fingerprint checks (6+1)**: anti-VM/emulation hardware-behavior tests plus policy hardening layer. +- **Pending ledger**: intermediate transfer/reward state before final confirmation/void. +- **PSE / entropy-derived signals**: timing/noise signatures used in report/fingerprint scoring. +- **Anchoring**: writing settlement proof to external chain (Ergo). + +--- + +## 11) Suggested docs split for final upstream submission + +To match bounty acceptance cleanly, split this into: + +- `docs/protocol/overview.md` +- `docs/protocol/attestation.md` +- `docs/protocol/epoch_settlement.md` +- `docs/protocol/tokenomics.md` +- `docs/protocol/network_architecture.md` +- `docs/protocol/api_reference.md` +- `docs/protocol/glossary.md` + +This draft is intentionally consolidated for review-first iteration. diff --git a/node/rustchain_v2_integrated_v2.2.1_rip200.py b/node/rustchain_v2_integrated_v2.2.1_rip200.py index e0257c58..09e967d7 100644 --- a/node/rustchain_v2_integrated_v2.2.1_rip200.py +++ b/node/rustchain_v2_integrated_v2.2.1_rip200.py @@ -167,8 +167,8 @@ def _attest_is_valid_positive_int(value, max_value=4096): def client_ip_from_request(req) -> str: - """Return the left-most forwarded IP when present, otherwise the remote address.""" - client_ip = req.headers.get("X-Forwarded-For", req.remote_addr) + """Return trusted client IP from reverse proxy (X-Real-IP) or remote address.""" + client_ip = req.headers.get("X-Real-IP") or req.remote_addr if client_ip and "," in client_ip: client_ip = client_ip.split(",")[0].strip() return client_ip @@ -316,6 +316,13 @@ def _start_timer(): g._ts = time.time() g.request_id = request.headers.get("X-Request-Id") or uuid.uuid4().hex +def get_client_ip(): + """Trust reverse-proxy X-Real-IP, not client X-Forwarded-For.""" + client_ip = request.headers.get("X-Real-IP") or request.remote_addr + if client_ip and "," in client_ip: + client_ip = client_ip.split(",")[0].strip() + return client_ip + @app.after_request def _after(resp): try: @@ -327,7 +334,7 @@ def _after(resp): "method": request.method, "path": request.path, "status": resp.status_code, - "ip": request.headers.get("X-Forwarded-For", request.remote_addr), + "ip": get_client_ip(), "dur_ms": int(dur * 1000), } log.info(json.dumps(rec, separators=(",", ":"))) @@ -2005,7 +2012,7 @@ def submit_attestation(): return payload_error # Extract client IP (handle nginx proxy) - client_ip = client_ip_from_request(request) + client_ip = get_client_ip() # Extract attestation data miner = _attest_valid_miner(data.get('miner')) or _attest_valid_miner(data.get('miner_id')) @@ -2244,9 +2251,7 @@ def enroll_epoch(): data = request.get_json() # Extract client IP (handle nginx proxy) - client_ip = request.headers.get("X-Forwarded-For", request.remote_addr) - if client_ip and "," in client_ip: - client_ip = client_ip.split(",")[0].strip() # First IP in chain + client_ip = get_client_ip() miner_pk = data.get('miner_pubkey') miner_id = data.get('miner_id', miner_pk) # Use miner_id if provided device = data.get('device', {}) @@ -2610,9 +2615,7 @@ def register_withdrawal_key(): return jsonify({"error": "Invalid JSON body"}), 400 # Extract client IP (handle nginx proxy) - client_ip = request.headers.get("X-Forwarded-For", request.remote_addr) - if client_ip and "," in client_ip: - client_ip = client_ip.split(",")[0].strip() # First IP in chain + client_ip = get_client_ip() miner_pk = data.get('miner_pk') pubkey_sr25519 = data.get('pubkey_sr25519') @@ -2663,9 +2666,7 @@ def request_withdrawal(): data = request.get_json() # Extract client IP (handle nginx proxy) - client_ip = request.headers.get("X-Forwarded-For", request.remote_addr) - if client_ip and "," in client_ip: - client_ip = client_ip.split(",")[0].strip() # First IP in chain + client_ip = get_client_ip() miner_pk = data.get('miner_pk') amount = float(data.get('amount', 0)) destination = data.get('destination') @@ -3615,9 +3616,7 @@ def add_oui_deny(): data = request.get_json() # Extract client IP (handle nginx proxy) - client_ip = request.headers.get("X-Forwarded-For", request.remote_addr) - if client_ip and "," in client_ip: - client_ip = client_ip.split(",")[0].strip() # First IP in chain + client_ip = get_client_ip() oui = data.get('oui', '').lower().replace(':', '').replace('-', '') vendor = data.get('vendor', 'Unknown') enforce = int(data.get('enforce', 0)) @@ -3642,9 +3641,7 @@ def remove_oui_deny(): data = request.get_json() # Extract client IP (handle nginx proxy) - client_ip = request.headers.get("X-Forwarded-For", request.remote_addr) - if client_ip and "," in client_ip: - client_ip = client_ip.split(",")[0].strip() # First IP in chain + client_ip = get_client_ip() oui = data.get('oui', '').lower().replace(':', '').replace('-', '') with sqlite3.connect(DB_PATH) as conn: @@ -3708,9 +3705,7 @@ def attest_debug(): data = request.get_json() # Extract client IP (handle nginx proxy) - client_ip = request.headers.get("X-Forwarded-For", request.remote_addr) - if client_ip and "," in client_ip: - client_ip = client_ip.split(",")[0].strip() # First IP in chain + client_ip = get_client_ip() miner = data.get('miner') or data.get('miner_id') if not miner: @@ -4382,9 +4377,7 @@ def wallet_transfer_OLD(): data = request.get_json() # Extract client IP (handle nginx proxy) - client_ip = request.headers.get("X-Forwarded-For", request.remote_addr) - if client_ip and "," in client_ip: - client_ip = client_ip.split(",")[0].strip() # First IP in chain + client_ip = get_client_ip() from_miner = data.get('from_miner') to_miner = data.get('to_miner') amount_rtc = float(data.get('amount_rtc', 0)) @@ -4808,9 +4801,7 @@ def wallet_transfer_signed(): return jsonify({"error": pre.error, "details": pre.details}), 400 # Extract client IP (handle nginx proxy) - client_ip = request.headers.get("X-Forwarded-For", request.remote_addr) - if client_ip and "," in client_ip: - client_ip = client_ip.split(",")[0].strip() # First IP in chain + client_ip = get_client_ip() from_address = pre.details["from_address"] to_address = pre.details["to_address"] diff --git a/rips/Cargo.lock b/rips/Cargo.lock new file mode 100644 index 00000000..4a1ec3da --- /dev/null +++ b/rips/Cargo.lock @@ -0,0 +1,2073 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "aho-corasick" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] + +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + +[[package]] +name = "anstyle" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" + +[[package]] +name = "anyhow" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bumpalo" +version = "3.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" + +[[package]] +name = "bytes" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" + +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + +[[package]] +name = "cc" +version = "1.2.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "clap" +version = "4.5.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" +dependencies = [ + "clap_builder", +] + +[[package]] +name = "clap_builder" +version = "4.5.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" +dependencies = [ + "anstyle", + "clap_lex", +] + +[[package]] +name = "clap_lex" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "criterion" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +dependencies = [ + "anes", + "cast", + "ciborium", + "clap", + "criterion-plot", + "is-terminal", + "itertools", + "num-traits", + "once_cell", + "oorandom", + "plotters", + "rayon", + "regex", + "serde", + "serde_derive", + "serde_json", + "tinytemplate", + "walkdir", +] + +[[package]] +name = "criterion-plot" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +dependencies = [ + "cast", + "itertools", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures-channel" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" + +[[package]] +name = "futures-sink" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" + +[[package]] +name = "futures-task" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" + +[[package]] +name = "futures-util" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "getrandom" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", + "wasip3", +] + +[[package]] +name = "h2" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "half" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" +dependencies = [ + "cfg-if", + "crunchy", + "zerocopy", +] + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.5.10", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "icu_collections" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" + +[[package]] +name = "icu_properties" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" + +[[package]] +name = "icu_provider" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +dependencies = [ + "equivalent", + "hashbrown 0.16.1", + "serde", + "serde_core", +] + +[[package]] +name = "ipnet" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" + +[[package]] +name = "is-terminal" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" + +[[package]] +name = "js-sys" +version = "0.3.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + +[[package]] +name = "libc" +version = "0.2.182" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[package]] +name = "litemap" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" + +[[package]] +name = "memchr" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mio" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.61.2", +] + +[[package]] +name = "native-tls" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "oorandom" +version = "11.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" + +[[package]] +name = "openssl" +version = "0.10.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08838db121398ad17ab8531ce9de97b244589089e290a384c900cb9ff7434328" +dependencies = [ + "bitflags 2.11.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "openssl-probe" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" + +[[package]] +name = "openssl-sys" +version = "0.9.111" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link", +] + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "plotters" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747" +dependencies = [ + "num-traits", + "plotters-backend", + "plotters-svg", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a" + +[[package]] +name = "plotters-svg" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670" +dependencies = [ + "plotters-backend", +] + +[[package]] +name = "potential_utf" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +dependencies = [ + "zerovec", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn", +] + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.17", +] + +[[package]] +name = "rayon" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.11.0", +] + +[[package]] +name = "regex" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" + +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "rustchain-core" +version = "0.1.0" +dependencies = [ + "criterion", + "hex", + "rand", + "rand_chacha", + "reqwest", + "serde", + "serde_json", + "sha2", + "tokio", +] + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags 2.11.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "ryu" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "security-framework" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" +dependencies = [ + "bitflags 2.11.0", + "core-foundation 0.10.1", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" +dependencies = [ + "errno", + "libc", +] + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "socket2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "socket2" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "syn" +version = "2.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation 0.9.4", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tempfile" +version = "3.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0" +dependencies = [ + "fastrand", + "getrandom 0.4.2", + "once_cell", + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "tinystr" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "tokio" +version = "1.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" +dependencies = [ + "bytes", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.6.3", + "tokio-macros", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-macros" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typenum" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "url" +version = "2.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.2+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" +dependencies = [ + "cfg-if", + "futures-util", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder", + "wasmparser", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags 2.11.0", + "hashbrown 0.15.5", + "indexmap", + "semver", +] + +[[package]] +name = "web-sys" +version = "0.3.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags 2.11.0", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] + +[[package]] +name = "writeable" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" + +[[package]] +name = "yoke" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.8.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a789c6e490b576db9f7e6b6d661bcc9799f7c0ac8352f56ea20193b2681532e5" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f65c489a7071a749c849713807783f70672b28094011623e200cb86dcb835953" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerotrie" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/rips/benches/entropy_bench.rs b/rips/benches/entropy_bench.rs new file mode 100644 index 00000000..b1526c0f --- /dev/null +++ b/rips/benches/entropy_bench.rs @@ -0,0 +1,11 @@ +// Entropy Benchmark for RIP-002 +use criterion::{black_box, criterion_group, criterion_main, Criterion}; + +fn bench_placeholder(c: &mut Criterion) { + c.bench_function("placeholder_bench", |b| { + b.iter(|| black_box(42)); + }); +} + +criterion_group!(benches, bench_placeholder); +criterion_main!(benches); diff --git a/rips/src/bin/miner.rs b/rips/src/bin/miner.rs new file mode 100644 index 00000000..4dadb580 --- /dev/null +++ b/rips/src/bin/miner.rs @@ -0,0 +1,7 @@ +// RustChain Miner Binary +// Placeholder for baseline miner workflow + +fn main() { + println!("RustChain Miner - Proof of Antiquity"); + println!("Use clawrtc or rustchain-fingerprint for mining attestation"); +} diff --git a/rips/src/bin/node.rs b/rips/src/bin/node.rs new file mode 100644 index 00000000..c9a82b7f --- /dev/null +++ b/rips/src/bin/node.rs @@ -0,0 +1,7 @@ +// RustChain Node Binary +// Placeholder for baseline node workflow + +fn main() { + println!("RustChain Node - Proof of Antiquity Consensus"); + println!("Use rustchain-fingerprint for hardware attestation"); +} diff --git a/rips/target/.rustc_info.json b/rips/target/.rustc_info.json new file mode 100644 index 00000000..bb8b3d42 --- /dev/null +++ b/rips/target/.rustc_info.json @@ -0,0 +1 @@ +{"rustc_fingerprint":4738386654715195450,"outputs":{"17747080675513052775":{"success":true,"status":"","code":0,"stdout":"rustc 1.94.0 (4a4ef493e 2026-03-02)\nbinary: rustc\ncommit-hash: 4a4ef493e3a1488c6e321570238084b38948f6db\ncommit-date: 2026-03-02\nhost: aarch64-apple-darwin\nrelease: 1.94.0\nLLVM version: 21.1.8\n","stderr":""},"7971740275564407648":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.dylib\nlib___.dylib\nlib___.a\nlib___.dylib\n/Users/xr/.rustup/toolchains/stable-aarch64-apple-darwin\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"aarch64\"\ntarget_endian=\"little\"\ntarget_env=\"\"\ntarget_family=\"unix\"\ntarget_feature=\"aes\"\ntarget_feature=\"crc\"\ntarget_feature=\"dit\"\ntarget_feature=\"dotprod\"\ntarget_feature=\"dpb\"\ntarget_feature=\"dpb2\"\ntarget_feature=\"fcma\"\ntarget_feature=\"fhm\"\ntarget_feature=\"flagm\"\ntarget_feature=\"fp16\"\ntarget_feature=\"frintts\"\ntarget_feature=\"jsconv\"\ntarget_feature=\"lor\"\ntarget_feature=\"lse\"\ntarget_feature=\"neon\"\ntarget_feature=\"paca\"\ntarget_feature=\"pacg\"\ntarget_feature=\"pan\"\ntarget_feature=\"pmuv3\"\ntarget_feature=\"ras\"\ntarget_feature=\"rcpc\"\ntarget_feature=\"rcpc2\"\ntarget_feature=\"rdm\"\ntarget_feature=\"sb\"\ntarget_feature=\"sha2\"\ntarget_feature=\"sha3\"\ntarget_feature=\"ssbs\"\ntarget_feature=\"vh\"\ntarget_has_atomic=\"128\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"macos\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"apple\"\nunix\n","stderr":""}},"successes":{}} \ No newline at end of file diff --git a/rips/target/CACHEDIR.TAG b/rips/target/CACHEDIR.TAG new file mode 100644 index 00000000..20d7c319 --- /dev/null +++ b/rips/target/CACHEDIR.TAG @@ -0,0 +1,3 @@ +Signature: 8a477f597d28d172789f06886806bc55 +# This file is a cache directory tag created by cargo. +# For information about cache directory tags see https://bford.info/cachedir/ diff --git a/rips/target/debug/.cargo-lock b/rips/target/debug/.cargo-lock new file mode 100644 index 00000000..e69de29b diff --git a/rips/target/debug/.fingerprint/block-buffer-a7fbb26b4819d9be/dep-lib-block_buffer b/rips/target/debug/.fingerprint/block-buffer-a7fbb26b4819d9be/dep-lib-block_buffer new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/block-buffer-a7fbb26b4819d9be/dep-lib-block_buffer differ diff --git a/rips/target/debug/.fingerprint/block-buffer-a7fbb26b4819d9be/invoked.timestamp b/rips/target/debug/.fingerprint/block-buffer-a7fbb26b4819d9be/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/block-buffer-a7fbb26b4819d9be/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/block-buffer-a7fbb26b4819d9be/lib-block_buffer b/rips/target/debug/.fingerprint/block-buffer-a7fbb26b4819d9be/lib-block_buffer new file mode 100644 index 00000000..4f070aed --- /dev/null +++ b/rips/target/debug/.fingerprint/block-buffer-a7fbb26b4819d9be/lib-block_buffer @@ -0,0 +1 @@ +6fe8869f8dd24c40 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/block-buffer-a7fbb26b4819d9be/lib-block_buffer.json b/rips/target/debug/.fingerprint/block-buffer-a7fbb26b4819d9be/lib-block_buffer.json new file mode 100644 index 00000000..14d0edb6 --- /dev/null +++ b/rips/target/debug/.fingerprint/block-buffer-a7fbb26b4819d9be/lib-block_buffer.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[]","declared_features":"[]","target":4098124618827574291,"profile":8276155916380437441,"path":8700482425094646880,"deps":[[10520923840501062997,"generic_array",false,2231476750042075396]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/block-buffer-a7fbb26b4819d9be/dep-lib-block_buffer","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/cfg-if-9f5c035e4a47d6d5/dep-lib-cfg_if b/rips/target/debug/.fingerprint/cfg-if-9f5c035e4a47d6d5/dep-lib-cfg_if new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/cfg-if-9f5c035e4a47d6d5/dep-lib-cfg_if differ diff --git a/rips/target/debug/.fingerprint/cfg-if-9f5c035e4a47d6d5/invoked.timestamp b/rips/target/debug/.fingerprint/cfg-if-9f5c035e4a47d6d5/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/cfg-if-9f5c035e4a47d6d5/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/cfg-if-9f5c035e4a47d6d5/lib-cfg_if b/rips/target/debug/.fingerprint/cfg-if-9f5c035e4a47d6d5/lib-cfg_if new file mode 100644 index 00000000..3cd2cdc1 --- /dev/null +++ b/rips/target/debug/.fingerprint/cfg-if-9f5c035e4a47d6d5/lib-cfg_if @@ -0,0 +1 @@ +63d01b22fe848226 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/cfg-if-9f5c035e4a47d6d5/lib-cfg_if.json b/rips/target/debug/.fingerprint/cfg-if-9f5c035e4a47d6d5/lib-cfg_if.json new file mode 100644 index 00000000..84fc311b --- /dev/null +++ b/rips/target/debug/.fingerprint/cfg-if-9f5c035e4a47d6d5/lib-cfg_if.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[]","declared_features":"[\"core\", \"rustc-dep-of-std\"]","target":13840298032947503755,"profile":8276155916380437441,"path":8276702342777157342,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/cfg-if-9f5c035e4a47d6d5/dep-lib-cfg_if","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/cpufeatures-b3bcfc895e45595d/dep-lib-cpufeatures b/rips/target/debug/.fingerprint/cpufeatures-b3bcfc895e45595d/dep-lib-cpufeatures new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/cpufeatures-b3bcfc895e45595d/dep-lib-cpufeatures differ diff --git a/rips/target/debug/.fingerprint/cpufeatures-b3bcfc895e45595d/invoked.timestamp b/rips/target/debug/.fingerprint/cpufeatures-b3bcfc895e45595d/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/cpufeatures-b3bcfc895e45595d/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/cpufeatures-b3bcfc895e45595d/lib-cpufeatures b/rips/target/debug/.fingerprint/cpufeatures-b3bcfc895e45595d/lib-cpufeatures new file mode 100644 index 00000000..a8079b74 --- /dev/null +++ b/rips/target/debug/.fingerprint/cpufeatures-b3bcfc895e45595d/lib-cpufeatures @@ -0,0 +1 @@ +0db44c74a7a83ccd \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/cpufeatures-b3bcfc895e45595d/lib-cpufeatures.json b/rips/target/debug/.fingerprint/cpufeatures-b3bcfc895e45595d/lib-cpufeatures.json new file mode 100644 index 00000000..47c06751 --- /dev/null +++ b/rips/target/debug/.fingerprint/cpufeatures-b3bcfc895e45595d/lib-cpufeatures.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[]","declared_features":"[]","target":2330704043955282025,"profile":8276155916380437441,"path":9561708368237038783,"deps":[[18365559012052052344,"libc",false,714440994791621148]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/cpufeatures-b3bcfc895e45595d/dep-lib-cpufeatures","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/crypto-common-5a48b16dd3d3ae17/dep-lib-crypto_common b/rips/target/debug/.fingerprint/crypto-common-5a48b16dd3d3ae17/dep-lib-crypto_common new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/crypto-common-5a48b16dd3d3ae17/dep-lib-crypto_common differ diff --git a/rips/target/debug/.fingerprint/crypto-common-5a48b16dd3d3ae17/invoked.timestamp b/rips/target/debug/.fingerprint/crypto-common-5a48b16dd3d3ae17/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/crypto-common-5a48b16dd3d3ae17/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/crypto-common-5a48b16dd3d3ae17/lib-crypto_common b/rips/target/debug/.fingerprint/crypto-common-5a48b16dd3d3ae17/lib-crypto_common new file mode 100644 index 00000000..3e7e30bc --- /dev/null +++ b/rips/target/debug/.fingerprint/crypto-common-5a48b16dd3d3ae17/lib-crypto_common @@ -0,0 +1 @@ +16d765c97d9b8d75 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/crypto-common-5a48b16dd3d3ae17/lib-crypto_common.json b/rips/target/debug/.fingerprint/crypto-common-5a48b16dd3d3ae17/lib-crypto_common.json new file mode 100644 index 00000000..4f23ea78 --- /dev/null +++ b/rips/target/debug/.fingerprint/crypto-common-5a48b16dd3d3ae17/lib-crypto_common.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"std\"]","declared_features":"[\"getrandom\", \"rand_core\", \"std\"]","target":12082577455412410174,"profile":8276155916380437441,"path":10091791718471139085,"deps":[[857979250431893282,"typenum",false,16947624063893848707],[10520923840501062997,"generic_array",false,2231476750042075396]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/crypto-common-5a48b16dd3d3ae17/dep-lib-crypto_common","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/digest-147b10fff2a1888b/dep-lib-digest b/rips/target/debug/.fingerprint/digest-147b10fff2a1888b/dep-lib-digest new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/digest-147b10fff2a1888b/dep-lib-digest differ diff --git a/rips/target/debug/.fingerprint/digest-147b10fff2a1888b/invoked.timestamp b/rips/target/debug/.fingerprint/digest-147b10fff2a1888b/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/digest-147b10fff2a1888b/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/digest-147b10fff2a1888b/lib-digest b/rips/target/debug/.fingerprint/digest-147b10fff2a1888b/lib-digest new file mode 100644 index 00000000..afe52091 --- /dev/null +++ b/rips/target/debug/.fingerprint/digest-147b10fff2a1888b/lib-digest @@ -0,0 +1 @@ +49409935dd51001c \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/digest-147b10fff2a1888b/lib-digest.json b/rips/target/debug/.fingerprint/digest-147b10fff2a1888b/lib-digest.json new file mode 100644 index 00000000..ea9f8cc7 --- /dev/null +++ b/rips/target/debug/.fingerprint/digest-147b10fff2a1888b/lib-digest.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"alloc\", \"block-buffer\", \"core-api\", \"default\", \"std\"]","declared_features":"[\"alloc\", \"blobby\", \"block-buffer\", \"const-oid\", \"core-api\", \"default\", \"dev\", \"mac\", \"oid\", \"rand_core\", \"std\", \"subtle\"]","target":7510122432137863311,"profile":8276155916380437441,"path":5622285757186881940,"deps":[[6039282458970808711,"crypto_common",false,8470597438705882902],[10626340395483396037,"block_buffer",false,4633309622366038127]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/digest-147b10fff2a1888b/dep-lib-digest","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/generic-array-073be687da38b886/dep-lib-generic_array b/rips/target/debug/.fingerprint/generic-array-073be687da38b886/dep-lib-generic_array new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/generic-array-073be687da38b886/dep-lib-generic_array differ diff --git a/rips/target/debug/.fingerprint/generic-array-073be687da38b886/invoked.timestamp b/rips/target/debug/.fingerprint/generic-array-073be687da38b886/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/generic-array-073be687da38b886/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/generic-array-073be687da38b886/lib-generic_array b/rips/target/debug/.fingerprint/generic-array-073be687da38b886/lib-generic_array new file mode 100644 index 00000000..ddd7ac30 --- /dev/null +++ b/rips/target/debug/.fingerprint/generic-array-073be687da38b886/lib-generic_array @@ -0,0 +1 @@ +0411cd0248ccf71e \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/generic-array-073be687da38b886/lib-generic_array.json b/rips/target/debug/.fingerprint/generic-array-073be687da38b886/lib-generic_array.json new file mode 100644 index 00000000..f40d07d0 --- /dev/null +++ b/rips/target/debug/.fingerprint/generic-array-073be687da38b886/lib-generic_array.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"more_lengths\"]","declared_features":"[\"more_lengths\", \"serde\", \"zeroize\"]","target":13084005262763373425,"profile":8276155916380437441,"path":12095525984721491243,"deps":[[857979250431893282,"typenum",false,16947624063893848707],[10520923840501062997,"build_script_build",false,3407219157391451742]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/generic-array-073be687da38b886/dep-lib-generic_array","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/generic-array-4a98c9d4a378ce52/build-script-build-script-build b/rips/target/debug/.fingerprint/generic-array-4a98c9d4a378ce52/build-script-build-script-build new file mode 100644 index 00000000..240e9817 --- /dev/null +++ b/rips/target/debug/.fingerprint/generic-array-4a98c9d4a378ce52/build-script-build-script-build @@ -0,0 +1 @@ +f7b998e03137c317 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/generic-array-4a98c9d4a378ce52/build-script-build-script-build.json b/rips/target/debug/.fingerprint/generic-array-4a98c9d4a378ce52/build-script-build-script-build.json new file mode 100644 index 00000000..e2655f0a --- /dev/null +++ b/rips/target/debug/.fingerprint/generic-array-4a98c9d4a378ce52/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"more_lengths\"]","declared_features":"[\"more_lengths\", \"serde\", \"zeroize\"]","target":12318548087768197662,"profile":3033921117576893,"path":5236787495134745756,"deps":[[5398981501050481332,"version_check",false,8494798333937623768]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/generic-array-4a98c9d4a378ce52/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/generic-array-4a98c9d4a378ce52/dep-build-script-build-script-build b/rips/target/debug/.fingerprint/generic-array-4a98c9d4a378ce52/dep-build-script-build-script-build new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/generic-array-4a98c9d4a378ce52/dep-build-script-build-script-build differ diff --git a/rips/target/debug/.fingerprint/generic-array-4a98c9d4a378ce52/invoked.timestamp b/rips/target/debug/.fingerprint/generic-array-4a98c9d4a378ce52/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/generic-array-4a98c9d4a378ce52/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/generic-array-5bb043c4e9b64bb2/run-build-script-build-script-build b/rips/target/debug/.fingerprint/generic-array-5bb043c4e9b64bb2/run-build-script-build-script-build new file mode 100644 index 00000000..31b4baf9 --- /dev/null +++ b/rips/target/debug/.fingerprint/generic-array-5bb043c4e9b64bb2/run-build-script-build-script-build @@ -0,0 +1 @@ +5e26397cc5df482f \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/generic-array-5bb043c4e9b64bb2/run-build-script-build-script-build.json b/rips/target/debug/.fingerprint/generic-array-5bb043c4e9b64bb2/run-build-script-build-script-build.json new file mode 100644 index 00000000..cf17d7e3 --- /dev/null +++ b/rips/target/debug/.fingerprint/generic-array-5bb043c4e9b64bb2/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[10520923840501062997,"build_script_build",false,1712272970691951095]],"local":[{"Precalculated":"0.14.7"}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/getrandom-8b8ecffd4a36e365/dep-lib-getrandom b/rips/target/debug/.fingerprint/getrandom-8b8ecffd4a36e365/dep-lib-getrandom new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/getrandom-8b8ecffd4a36e365/dep-lib-getrandom differ diff --git a/rips/target/debug/.fingerprint/getrandom-8b8ecffd4a36e365/invoked.timestamp b/rips/target/debug/.fingerprint/getrandom-8b8ecffd4a36e365/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/getrandom-8b8ecffd4a36e365/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/getrandom-8b8ecffd4a36e365/lib-getrandom b/rips/target/debug/.fingerprint/getrandom-8b8ecffd4a36e365/lib-getrandom new file mode 100644 index 00000000..ee222fc5 --- /dev/null +++ b/rips/target/debug/.fingerprint/getrandom-8b8ecffd4a36e365/lib-getrandom @@ -0,0 +1 @@ +e2656af1ab7f6928 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/getrandom-8b8ecffd4a36e365/lib-getrandom.json b/rips/target/debug/.fingerprint/getrandom-8b8ecffd4a36e365/lib-getrandom.json new file mode 100644 index 00000000..31889139 --- /dev/null +++ b/rips/target/debug/.fingerprint/getrandom-8b8ecffd4a36e365/lib-getrandom.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"std\"]","declared_features":"[\"compiler_builtins\", \"core\", \"custom\", \"js\", \"js-sys\", \"linux_disable_fallback\", \"rdrand\", \"rustc-dep-of-std\", \"std\", \"test-in-browser\", \"wasm-bindgen\"]","target":16244099637825074703,"profile":8276155916380437441,"path":9966282088719483070,"deps":[[7667230146095136825,"cfg_if",false,2774926547442454627],[18365559012052052344,"libc",false,714440994791621148]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/getrandom-8b8ecffd4a36e365/dep-lib-getrandom","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/hex-65444197bbd0b835/dep-lib-hex b/rips/target/debug/.fingerprint/hex-65444197bbd0b835/dep-lib-hex new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/hex-65444197bbd0b835/dep-lib-hex differ diff --git a/rips/target/debug/.fingerprint/hex-65444197bbd0b835/invoked.timestamp b/rips/target/debug/.fingerprint/hex-65444197bbd0b835/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/hex-65444197bbd0b835/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/hex-65444197bbd0b835/lib-hex b/rips/target/debug/.fingerprint/hex-65444197bbd0b835/lib-hex new file mode 100644 index 00000000..60ddcb6f --- /dev/null +++ b/rips/target/debug/.fingerprint/hex-65444197bbd0b835/lib-hex @@ -0,0 +1 @@ +b00e870c894ff73c \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/hex-65444197bbd0b835/lib-hex.json b/rips/target/debug/.fingerprint/hex-65444197bbd0b835/lib-hex.json new file mode 100644 index 00000000..584cc89e --- /dev/null +++ b/rips/target/debug/.fingerprint/hex-65444197bbd0b835/lib-hex.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"alloc\", \"default\", \"std\"]","declared_features":"[\"alloc\", \"default\", \"serde\", \"std\"]","target":4242469766639956503,"profile":8276155916380437441,"path":5234122111950123913,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/hex-65444197bbd0b835/dep-lib-hex","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/itoa-efc8bd66b3907534/dep-lib-itoa b/rips/target/debug/.fingerprint/itoa-efc8bd66b3907534/dep-lib-itoa new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/itoa-efc8bd66b3907534/dep-lib-itoa differ diff --git a/rips/target/debug/.fingerprint/itoa-efc8bd66b3907534/invoked.timestamp b/rips/target/debug/.fingerprint/itoa-efc8bd66b3907534/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/itoa-efc8bd66b3907534/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/itoa-efc8bd66b3907534/lib-itoa b/rips/target/debug/.fingerprint/itoa-efc8bd66b3907534/lib-itoa new file mode 100644 index 00000000..bfcd39f6 --- /dev/null +++ b/rips/target/debug/.fingerprint/itoa-efc8bd66b3907534/lib-itoa @@ -0,0 +1 @@ +7759b5132a30ed4b \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/itoa-efc8bd66b3907534/lib-itoa.json b/rips/target/debug/.fingerprint/itoa-efc8bd66b3907534/lib-itoa.json new file mode 100644 index 00000000..a5033d39 --- /dev/null +++ b/rips/target/debug/.fingerprint/itoa-efc8bd66b3907534/lib-itoa.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[]","declared_features":"[\"no-panic\"]","target":18426369533666673425,"profile":8276155916380437441,"path":8450309017571212557,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/itoa-efc8bd66b3907534/dep-lib-itoa","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/libc-2d398fdfeba87a17/dep-lib-libc b/rips/target/debug/.fingerprint/libc-2d398fdfeba87a17/dep-lib-libc new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/libc-2d398fdfeba87a17/dep-lib-libc differ diff --git a/rips/target/debug/.fingerprint/libc-2d398fdfeba87a17/invoked.timestamp b/rips/target/debug/.fingerprint/libc-2d398fdfeba87a17/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/libc-2d398fdfeba87a17/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/libc-2d398fdfeba87a17/lib-libc b/rips/target/debug/.fingerprint/libc-2d398fdfeba87a17/lib-libc new file mode 100644 index 00000000..7d143694 --- /dev/null +++ b/rips/target/debug/.fingerprint/libc-2d398fdfeba87a17/lib-libc @@ -0,0 +1 @@ +1c0288ab4c34ea09 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/libc-2d398fdfeba87a17/lib-libc.json b/rips/target/debug/.fingerprint/libc-2d398fdfeba87a17/lib-libc.json new file mode 100644 index 00000000..fbb723da --- /dev/null +++ b/rips/target/debug/.fingerprint/libc-2d398fdfeba87a17/lib-libc.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[]","declared_features":"[\"align\", \"const-extern-fn\", \"default\", \"extra_traits\", \"rustc-dep-of-std\", \"rustc-std-workspace-core\", \"std\", \"use_std\"]","target":17682796336736096309,"profile":9845369694348380695,"path":16753602245484606593,"deps":[[18365559012052052344,"build_script_build",false,2902396662022055506]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/libc-2d398fdfeba87a17/dep-lib-libc","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/libc-834587fa9fb22cbe/build-script-build-script-build b/rips/target/debug/.fingerprint/libc-834587fa9fb22cbe/build-script-build-script-build new file mode 100644 index 00000000..fd983cf1 --- /dev/null +++ b/rips/target/debug/.fingerprint/libc-834587fa9fb22cbe/build-script-build-script-build @@ -0,0 +1 @@ +195bf878e2f94915 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/libc-834587fa9fb22cbe/build-script-build-script-build.json b/rips/target/debug/.fingerprint/libc-834587fa9fb22cbe/build-script-build-script-build.json new file mode 100644 index 00000000..f37832dd --- /dev/null +++ b/rips/target/debug/.fingerprint/libc-834587fa9fb22cbe/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[]","declared_features":"[\"align\", \"const-extern-fn\", \"default\", \"extra_traits\", \"rustc-dep-of-std\", \"rustc-std-workspace-core\", \"std\", \"use_std\"]","target":5408242616063297496,"profile":3039969951022573740,"path":1423673365891520231,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/libc-834587fa9fb22cbe/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/libc-834587fa9fb22cbe/dep-build-script-build-script-build b/rips/target/debug/.fingerprint/libc-834587fa9fb22cbe/dep-build-script-build-script-build new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/libc-834587fa9fb22cbe/dep-build-script-build-script-build differ diff --git a/rips/target/debug/.fingerprint/libc-834587fa9fb22cbe/invoked.timestamp b/rips/target/debug/.fingerprint/libc-834587fa9fb22cbe/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/libc-834587fa9fb22cbe/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/libc-cd2b5faff8c0cc05/run-build-script-build-script-build b/rips/target/debug/.fingerprint/libc-cd2b5faff8c0cc05/run-build-script-build-script-build new file mode 100644 index 00000000..9d95d3a7 --- /dev/null +++ b/rips/target/debug/.fingerprint/libc-cd2b5faff8c0cc05/run-build-script-build-script-build @@ -0,0 +1 @@ +52a61af562624728 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/libc-cd2b5faff8c0cc05/run-build-script-build-script-build.json b/rips/target/debug/.fingerprint/libc-cd2b5faff8c0cc05/run-build-script-build-script-build.json new file mode 100644 index 00000000..daefc6d6 --- /dev/null +++ b/rips/target/debug/.fingerprint/libc-cd2b5faff8c0cc05/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[18365559012052052344,"build_script_build",false,1534031899183831833]],"local":[{"RerunIfChanged":{"output":"debug/build/libc-cd2b5faff8c0cc05/output","paths":["build.rs"]}},{"RerunIfEnvChanged":{"var":"RUST_LIBC_UNSTABLE_FREEBSD_VERSION","val":null}},{"RerunIfEnvChanged":{"var":"RUST_LIBC_UNSTABLE_MUSL_V1_2_3","val":null}},{"RerunIfEnvChanged":{"var":"RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64","val":null}},{"RerunIfEnvChanged":{"var":"RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS","val":null}},{"RerunIfEnvChanged":{"var":"RUST_LIBC_UNSTABLE_GNU_TIME_BITS","val":null}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/memchr-9c012e30c6a06cd8/dep-lib-memchr b/rips/target/debug/.fingerprint/memchr-9c012e30c6a06cd8/dep-lib-memchr new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/memchr-9c012e30c6a06cd8/dep-lib-memchr differ diff --git a/rips/target/debug/.fingerprint/memchr-9c012e30c6a06cd8/invoked.timestamp b/rips/target/debug/.fingerprint/memchr-9c012e30c6a06cd8/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/memchr-9c012e30c6a06cd8/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/memchr-9c012e30c6a06cd8/lib-memchr b/rips/target/debug/.fingerprint/memchr-9c012e30c6a06cd8/lib-memchr new file mode 100644 index 00000000..623dedbb --- /dev/null +++ b/rips/target/debug/.fingerprint/memchr-9c012e30c6a06cd8/lib-memchr @@ -0,0 +1 @@ +f53ee95a71a57f95 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/memchr-9c012e30c6a06cd8/lib-memchr.json b/rips/target/debug/.fingerprint/memchr-9c012e30c6a06cd8/lib-memchr.json new file mode 100644 index 00000000..7f40ca62 --- /dev/null +++ b/rips/target/debug/.fingerprint/memchr-9c012e30c6a06cd8/lib-memchr.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"alloc\", \"std\"]","declared_features":"[\"alloc\", \"core\", \"default\", \"libc\", \"logging\", \"rustc-dep-of-std\", \"std\", \"use_std\"]","target":11745930252914242013,"profile":8276155916380437441,"path":11705904940961625189,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/memchr-9c012e30c6a06cd8/dep-lib-memchr","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/ppv-lite86-07c9c45dec2097d7/dep-lib-ppv_lite86 b/rips/target/debug/.fingerprint/ppv-lite86-07c9c45dec2097d7/dep-lib-ppv_lite86 new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/ppv-lite86-07c9c45dec2097d7/dep-lib-ppv_lite86 differ diff --git a/rips/target/debug/.fingerprint/ppv-lite86-07c9c45dec2097d7/invoked.timestamp b/rips/target/debug/.fingerprint/ppv-lite86-07c9c45dec2097d7/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/ppv-lite86-07c9c45dec2097d7/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/ppv-lite86-07c9c45dec2097d7/lib-ppv_lite86 b/rips/target/debug/.fingerprint/ppv-lite86-07c9c45dec2097d7/lib-ppv_lite86 new file mode 100644 index 00000000..f984c40f --- /dev/null +++ b/rips/target/debug/.fingerprint/ppv-lite86-07c9c45dec2097d7/lib-ppv_lite86 @@ -0,0 +1 @@ +18ec7d99f8850b6e \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/ppv-lite86-07c9c45dec2097d7/lib-ppv_lite86.json b/rips/target/debug/.fingerprint/ppv-lite86-07c9c45dec2097d7/lib-ppv_lite86.json new file mode 100644 index 00000000..83567992 --- /dev/null +++ b/rips/target/debug/.fingerprint/ppv-lite86-07c9c45dec2097d7/lib-ppv_lite86.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"simd\", \"std\"]","declared_features":"[\"default\", \"no_simd\", \"simd\", \"std\"]","target":2607852365283500179,"profile":8276155916380437441,"path":6684532048076439842,"deps":[[17375358419629610217,"zerocopy",false,2654803185358162661]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/ppv-lite86-07c9c45dec2097d7/dep-lib-ppv_lite86","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/proc-macro2-13365d488cc5c6b7/dep-lib-proc_macro2 b/rips/target/debug/.fingerprint/proc-macro2-13365d488cc5c6b7/dep-lib-proc_macro2 new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/proc-macro2-13365d488cc5c6b7/dep-lib-proc_macro2 differ diff --git a/rips/target/debug/.fingerprint/proc-macro2-13365d488cc5c6b7/invoked.timestamp b/rips/target/debug/.fingerprint/proc-macro2-13365d488cc5c6b7/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/proc-macro2-13365d488cc5c6b7/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/proc-macro2-13365d488cc5c6b7/lib-proc_macro2 b/rips/target/debug/.fingerprint/proc-macro2-13365d488cc5c6b7/lib-proc_macro2 new file mode 100644 index 00000000..592ac25d --- /dev/null +++ b/rips/target/debug/.fingerprint/proc-macro2-13365d488cc5c6b7/lib-proc_macro2 @@ -0,0 +1 @@ +82178caae7ed2390 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/proc-macro2-13365d488cc5c6b7/lib-proc_macro2.json b/rips/target/debug/.fingerprint/proc-macro2-13365d488cc5c6b7/lib-proc_macro2.json new file mode 100644 index 00000000..cc5dc7f2 --- /dev/null +++ b/rips/target/debug/.fingerprint/proc-macro2-13365d488cc5c6b7/lib-proc_macro2.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"proc-macro\"]","declared_features":"[\"default\", \"nightly\", \"proc-macro\", \"span-locations\"]","target":369203346396300798,"profile":3033921117576893,"path":11432675500560036523,"deps":[[4289358735036141001,"build_script_build",false,14110378486859421280],[8901712065508858692,"unicode_ident",false,10287155546703308581]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/proc-macro2-13365d488cc5c6b7/dep-lib-proc_macro2","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/proc-macro2-369a8f3d34745378/run-build-script-build-script-build b/rips/target/debug/.fingerprint/proc-macro2-369a8f3d34745378/run-build-script-build-script-build new file mode 100644 index 00000000..471083e0 --- /dev/null +++ b/rips/target/debug/.fingerprint/proc-macro2-369a8f3d34745378/run-build-script-build-script-build @@ -0,0 +1 @@ +60d6914b7922d2c3 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/proc-macro2-369a8f3d34745378/run-build-script-build-script-build.json b/rips/target/debug/.fingerprint/proc-macro2-369a8f3d34745378/run-build-script-build-script-build.json new file mode 100644 index 00000000..170bc43c --- /dev/null +++ b/rips/target/debug/.fingerprint/proc-macro2-369a8f3d34745378/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[4289358735036141001,"build_script_build",false,13723635579883990894]],"local":[{"RerunIfChanged":{"output":"debug/build/proc-macro2-369a8f3d34745378/output","paths":["src/probe/proc_macro_span.rs","src/probe/proc_macro_span_location.rs","src/probe/proc_macro_span_file.rs"]}},{"RerunIfEnvChanged":{"var":"RUSTC_BOOTSTRAP","val":null}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/proc-macro2-83719cb63f63f5d3/build-script-build-script-build b/rips/target/debug/.fingerprint/proc-macro2-83719cb63f63f5d3/build-script-build-script-build new file mode 100644 index 00000000..76719e84 --- /dev/null +++ b/rips/target/debug/.fingerprint/proc-macro2-83719cb63f63f5d3/build-script-build-script-build @@ -0,0 +1 @@ +6eafe555d92574be \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/proc-macro2-83719cb63f63f5d3/build-script-build-script-build.json b/rips/target/debug/.fingerprint/proc-macro2-83719cb63f63f5d3/build-script-build-script-build.json new file mode 100644 index 00000000..1fb6d54e --- /dev/null +++ b/rips/target/debug/.fingerprint/proc-macro2-83719cb63f63f5d3/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"proc-macro\"]","declared_features":"[\"default\", \"nightly\", \"proc-macro\", \"span-locations\"]","target":5408242616063297496,"profile":3033921117576893,"path":14172581898353113703,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/proc-macro2-83719cb63f63f5d3/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/proc-macro2-83719cb63f63f5d3/dep-build-script-build-script-build b/rips/target/debug/.fingerprint/proc-macro2-83719cb63f63f5d3/dep-build-script-build-script-build new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/proc-macro2-83719cb63f63f5d3/dep-build-script-build-script-build differ diff --git a/rips/target/debug/.fingerprint/proc-macro2-83719cb63f63f5d3/invoked.timestamp b/rips/target/debug/.fingerprint/proc-macro2-83719cb63f63f5d3/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/proc-macro2-83719cb63f63f5d3/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/quote-3f28c55cf280abbb/run-build-script-build-script-build b/rips/target/debug/.fingerprint/quote-3f28c55cf280abbb/run-build-script-build-script-build new file mode 100644 index 00000000..c3a00671 --- /dev/null +++ b/rips/target/debug/.fingerprint/quote-3f28c55cf280abbb/run-build-script-build-script-build @@ -0,0 +1 @@ +7266d02da078da8d \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/quote-3f28c55cf280abbb/run-build-script-build-script-build.json b/rips/target/debug/.fingerprint/quote-3f28c55cf280abbb/run-build-script-build-script-build.json new file mode 100644 index 00000000..a3cc8d7c --- /dev/null +++ b/rips/target/debug/.fingerprint/quote-3f28c55cf280abbb/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[13111758008314797071,"build_script_build",false,2686686070732002878]],"local":[{"RerunIfChanged":{"output":"debug/build/quote-3f28c55cf280abbb/output","paths":["build.rs"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/quote-484c7badd3a025ed/dep-lib-quote b/rips/target/debug/.fingerprint/quote-484c7badd3a025ed/dep-lib-quote new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/quote-484c7badd3a025ed/dep-lib-quote differ diff --git a/rips/target/debug/.fingerprint/quote-484c7badd3a025ed/invoked.timestamp b/rips/target/debug/.fingerprint/quote-484c7badd3a025ed/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/quote-484c7badd3a025ed/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/quote-484c7badd3a025ed/lib-quote b/rips/target/debug/.fingerprint/quote-484c7badd3a025ed/lib-quote new file mode 100644 index 00000000..1bc09516 --- /dev/null +++ b/rips/target/debug/.fingerprint/quote-484c7badd3a025ed/lib-quote @@ -0,0 +1 @@ +ae40fdd0a9d040ea \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/quote-484c7badd3a025ed/lib-quote.json b/rips/target/debug/.fingerprint/quote-484c7badd3a025ed/lib-quote.json new file mode 100644 index 00000000..e7097ee4 --- /dev/null +++ b/rips/target/debug/.fingerprint/quote-484c7badd3a025ed/lib-quote.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"proc-macro\"]","declared_features":"[\"default\", \"proc-macro\"]","target":8313845041260779044,"profile":3033921117576893,"path":10394083976039018623,"deps":[[4289358735036141001,"proc_macro2",false,10386406744901031810],[13111758008314797071,"build_script_build",false,10221614933629494898]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/quote-484c7badd3a025ed/dep-lib-quote","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/quote-4db222137f887965/build-script-build-script-build b/rips/target/debug/.fingerprint/quote-4db222137f887965/build-script-build-script-build new file mode 100644 index 00000000..2a5708e1 --- /dev/null +++ b/rips/target/debug/.fingerprint/quote-4db222137f887965/build-script-build-script-build @@ -0,0 +1 @@ +3e96f824bf064925 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/quote-4db222137f887965/build-script-build-script-build.json b/rips/target/debug/.fingerprint/quote-4db222137f887965/build-script-build-script-build.json new file mode 100644 index 00000000..b4129442 --- /dev/null +++ b/rips/target/debug/.fingerprint/quote-4db222137f887965/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"proc-macro\"]","declared_features":"[\"default\", \"proc-macro\"]","target":5408242616063297496,"profile":3033921117576893,"path":17546570310748081370,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/quote-4db222137f887965/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/quote-4db222137f887965/dep-build-script-build-script-build b/rips/target/debug/.fingerprint/quote-4db222137f887965/dep-build-script-build-script-build new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/quote-4db222137f887965/dep-build-script-build-script-build differ diff --git a/rips/target/debug/.fingerprint/quote-4db222137f887965/invoked.timestamp b/rips/target/debug/.fingerprint/quote-4db222137f887965/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/quote-4db222137f887965/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/rand-a84a652204ae7ee2/dep-lib-rand b/rips/target/debug/.fingerprint/rand-a84a652204ae7ee2/dep-lib-rand new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/rand-a84a652204ae7ee2/dep-lib-rand differ diff --git a/rips/target/debug/.fingerprint/rand-a84a652204ae7ee2/invoked.timestamp b/rips/target/debug/.fingerprint/rand-a84a652204ae7ee2/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/rand-a84a652204ae7ee2/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/rand-a84a652204ae7ee2/lib-rand b/rips/target/debug/.fingerprint/rand-a84a652204ae7ee2/lib-rand new file mode 100644 index 00000000..def70af7 --- /dev/null +++ b/rips/target/debug/.fingerprint/rand-a84a652204ae7ee2/lib-rand @@ -0,0 +1 @@ +d256f06aa663ef8d \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/rand-a84a652204ae7ee2/lib-rand.json b/rips/target/debug/.fingerprint/rand-a84a652204ae7ee2/lib-rand.json new file mode 100644 index 00000000..86a6b806 --- /dev/null +++ b/rips/target/debug/.fingerprint/rand-a84a652204ae7ee2/lib-rand.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"alloc\", \"default\", \"getrandom\", \"libc\", \"rand_chacha\", \"std\", \"std_rng\"]","declared_features":"[\"alloc\", \"default\", \"getrandom\", \"libc\", \"log\", \"min_const_gen\", \"nightly\", \"packed_simd\", \"rand_chacha\", \"serde\", \"serde1\", \"simd_support\", \"small_rng\", \"std\", \"std_rng\"]","target":8827111241893198906,"profile":8276155916380437441,"path":10381758796311222287,"deps":[[1573238666360410412,"rand_chacha",false,3342923578592121526],[18130209639506977569,"rand_core",false,6048029978203510974],[18365559012052052344,"libc",false,714440994791621148]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/rand-a84a652204ae7ee2/dep-lib-rand","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/rand_chacha-45fcb69a566c069a/dep-lib-rand_chacha b/rips/target/debug/.fingerprint/rand_chacha-45fcb69a566c069a/dep-lib-rand_chacha new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/rand_chacha-45fcb69a566c069a/dep-lib-rand_chacha differ diff --git a/rips/target/debug/.fingerprint/rand_chacha-45fcb69a566c069a/invoked.timestamp b/rips/target/debug/.fingerprint/rand_chacha-45fcb69a566c069a/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/rand_chacha-45fcb69a566c069a/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/rand_chacha-45fcb69a566c069a/lib-rand_chacha b/rips/target/debug/.fingerprint/rand_chacha-45fcb69a566c069a/lib-rand_chacha new file mode 100644 index 00000000..c52d69d7 --- /dev/null +++ b/rips/target/debug/.fingerprint/rand_chacha-45fcb69a566c069a/lib-rand_chacha @@ -0,0 +1 @@ +b6d2427d4873642e \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/rand_chacha-45fcb69a566c069a/lib-rand_chacha.json b/rips/target/debug/.fingerprint/rand_chacha-45fcb69a566c069a/lib-rand_chacha.json new file mode 100644 index 00000000..f571b8df --- /dev/null +++ b/rips/target/debug/.fingerprint/rand_chacha-45fcb69a566c069a/lib-rand_chacha.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"serde\", \"serde1\", \"simd\", \"std\"]","target":15766068575093147603,"profile":8276155916380437441,"path":5733848388201758292,"deps":[[12919011715531272606,"ppv_lite86",false,7929578871689440280],[18130209639506977569,"rand_core",false,6048029978203510974]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/rand_chacha-45fcb69a566c069a/dep-lib-rand_chacha","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/rand_core-223b5957b186237e/dep-lib-rand_core b/rips/target/debug/.fingerprint/rand_core-223b5957b186237e/dep-lib-rand_core new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/rand_core-223b5957b186237e/dep-lib-rand_core differ diff --git a/rips/target/debug/.fingerprint/rand_core-223b5957b186237e/invoked.timestamp b/rips/target/debug/.fingerprint/rand_core-223b5957b186237e/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/rand_core-223b5957b186237e/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/rand_core-223b5957b186237e/lib-rand_core b/rips/target/debug/.fingerprint/rand_core-223b5957b186237e/lib-rand_core new file mode 100644 index 00000000..7d392bc7 --- /dev/null +++ b/rips/target/debug/.fingerprint/rand_core-223b5957b186237e/lib-rand_core @@ -0,0 +1 @@ +bed8bba938ebee53 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/rand_core-223b5957b186237e/lib-rand_core.json b/rips/target/debug/.fingerprint/rand_core-223b5957b186237e/lib-rand_core.json new file mode 100644 index 00000000..0cafc0b7 --- /dev/null +++ b/rips/target/debug/.fingerprint/rand_core-223b5957b186237e/lib-rand_core.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"alloc\", \"getrandom\", \"std\"]","declared_features":"[\"alloc\", \"getrandom\", \"serde\", \"serde1\", \"std\"]","target":13770603672348587087,"profile":8276155916380437441,"path":7550004967105632756,"deps":[[11023519408959114924,"getrandom",false,2911999010538153442]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/rand_core-223b5957b186237e/dep-lib-rand_core","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/rustchain-core-5bc11289b0c123ee/invoked.timestamp b/rips/target/debug/.fingerprint/rustchain-core-5bc11289b0c123ee/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/rustchain-core-5bc11289b0c123ee/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/rustchain-core-5bc11289b0c123ee/output-lib-rustchain b/rips/target/debug/.fingerprint/rustchain-core-5bc11289b0c123ee/output-lib-rustchain new file mode 100644 index 00000000..b0119307 --- /dev/null +++ b/rips/target/debug/.fingerprint/rustchain-core-5bc11289b0c123ee/output-lib-rustchain @@ -0,0 +1,57 @@ +{"$message_type":"diagnostic","message":"file not found for module `deep_entropy`","code":{"code":"E0583","explanation":"A file wasn't found for an out-of-line module.\n\nErroneous code example:\n\n```compile_fail,E0583\nmod file_that_doesnt_exist; // error: file not found for module\n\nfn main() {}\n```\n\nPlease be sure that a file corresponding to the module exists. If you\nwant to use a module named `file_that_doesnt_exist`, you need to have a file\nnamed `file_that_doesnt_exist.rs` or `file_that_doesnt_exist/mod.rs` in the\nsame directory.\n"},"level":"error","spans":[{"file_name":"src/lib.rs","byte_start":2475,"byte_end":2496,"line_start":66,"line_end":66,"column_start":1,"column_end":22,"is_primary":true,"text":[{"text":"pub mod deep_entropy;","highlight_start":1,"highlight_end":22}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"to create the module `deep_entropy`, create file \"src/deep_entropy.rs\" or \"src/deep_entropy/mod.rs\"","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"if there is a `mod deep_entropy` elsewhere in the crate already, import it with `use crate::...` instead","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0583]\u001b[0m\u001b[1m: file not found for module `deep_entropy`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/lib.rs:66:1\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m66\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub mod deep_entropy;\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[1mhelp\u001b[0m: to create the module `deep_entropy`, create file \"src/deep_entropy.rs\" or \"src/deep_entropy/mod.rs\"\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: if there is a `mod deep_entropy` elsewhere in the crate already, import it with `use crate::...` instead\n\n"} +{"$message_type":"diagnostic","message":"prefix `FFFFFF` is unknown","code":null,"level":"error","spans":[{"file_name":"src/nft_badges.rs","byte_start":20827,"byte_end":20833,"line_start":550,"line_end":550,"column_start":43,"column_end":49,"is_primary":true,"text":[{"text":" ","highlight_start":43,"highlight_end":49}],"label":"unknown prefix","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"prefixed identifiers and literals are reserved since Rust 2021","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"consider inserting whitespace here","code":null,"level":"help","spans":[{"file_name":"src/nft_badges.rs","byte_start":20833,"byte_end":20833,"line_start":550,"line_end":550,"column_start":49,"column_end":49,"is_primary":true,"text":[{"text":" ","highlight_start":49,"highlight_end":49}],"label":null,"suggested_replacement":" ","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: prefix `FFFFFF` is unknown\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/nft_badges.rs:550:43\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m550\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^\u001b[0m \u001b[1m\u001b[91munknown prefix\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: prefixed identifiers and literals are reserved since Rust 2021\n\u001b[1m\u001b[96mhelp\u001b[0m: consider inserting whitespace here\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m550\u001b[0m \u001b[1m\u001b[94m| \u001b[0m \n \u001b[1m\u001b[94m|\u001b[0m \u001b[92m+\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"prefix `FFFFFF` is unknown","code":null,"level":"error","spans":[{"file_name":"src/nft_badges.rs","byte_start":20958,"byte_end":20964,"line_start":553,"line_end":553,"column_start":88,"column_end":94,"is_primary":true,"text":[{"text":" ","highlight_start":88,"highlight_end":94}],"label":"unknown prefix","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"prefixed identifiers and literals are reserved since Rust 2021","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"consider inserting whitespace here","code":null,"level":"help","spans":[{"file_name":"src/nft_badges.rs","byte_start":20964,"byte_end":20964,"line_start":553,"line_end":553,"column_start":94,"column_end":94,"is_primary":true,"text":[{"text":" ","highlight_start":94,"highlight_end":94}],"label":null,"suggested_replacement":" ","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: prefix `FFFFFF` is unknown\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/nft_badges.rs:553:88\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m553\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^\u001b[0m \u001b[1m\u001b[91munknown prefix\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: prefixed identifiers and literals are reserved since Rust 2021\n\u001b[1m\u001b[96mhelp\u001b[0m: consider inserting whitespace here\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m553\u001b[0m \u001b[1m\u001b[94m| \u001b[0m \n \u001b[1m\u001b[94m|\u001b[0m \u001b[92m+\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"prefix `Black` is unknown","code":null,"level":"error","spans":[{"file_name":"src/nft_badges.rs","byte_start":21059,"byte_end":21064,"line_start":558,"line_end":558,"column_start":44,"column_end":49,"is_primary":true,"text":[{"text":" ","highlight_start":44,"highlight_end":49}],"label":"unknown prefix","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"prefixed identifiers and literals are reserved since Rust 2021","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"consider inserting whitespace here","code":null,"level":"help","spans":[{"file_name":"src/nft_badges.rs","byte_start":21064,"byte_end":21064,"line_start":558,"line_end":558,"column_start":49,"column_end":49,"is_primary":true,"text":[{"text":" ","highlight_start":49,"highlight_end":49}],"label":null,"suggested_replacement":" ","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: prefix `Black` is unknown\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/nft_badges.rs:558:44\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m558\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^\u001b[0m \u001b[1m\u001b[91munknown prefix\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: prefixed identifiers and literals are reserved since Rust 2021\n\u001b[1m\u001b[96mhelp\u001b[0m: consider inserting whitespace here\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m558\u001b[0m \u001b[1m\u001b[94m| \u001b[0m \n \u001b[1m\u001b[94m|\u001b[0m \u001b[92m+\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"prefix `FFFFFF` is unknown","code":null,"level":"error","spans":[{"file_name":"src/nft_badges.rs","byte_start":21109,"byte_end":21115,"line_start":558,"line_end":558,"column_start":94,"column_end":100,"is_primary":true,"text":[{"text":" ","highlight_start":94,"highlight_end":100}],"label":"unknown prefix","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"prefixed identifiers and literals are reserved since Rust 2021","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"consider inserting whitespace here","code":null,"level":"help","spans":[{"file_name":"src/nft_badges.rs","byte_start":21115,"byte_end":21115,"line_start":558,"line_end":558,"column_start":100,"column_end":100,"is_primary":true,"text":[{"text":" ","highlight_start":100,"highlight_end":100}],"label":null,"suggested_replacement":" ","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: prefix `FFFFFF` is unknown\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/nft_badges.rs:558:94\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m558\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^\u001b[0m \u001b[1m\u001b[91munknown prefix\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: prefixed identifiers and literals are reserved since Rust 2021\n\u001b[1m\u001b[96mhelp\u001b[0m: consider inserting whitespace here\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m558\u001b[0m \u001b[1m\u001b[94m| \u001b[0m \n \u001b[1m\u001b[94m|\u001b[0m \u001b[92m+\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"prefix `FFFFFF` is unknown","code":null,"level":"error","spans":[{"file_name":"src/nft_badges.rs","byte_start":21255,"byte_end":21261,"line_start":563,"line_end":563,"column_start":88,"column_end":94,"is_primary":true,"text":[{"text":" ","highlight_start":88,"highlight_end":94}],"label":"unknown prefix","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"prefixed identifiers and literals are reserved since Rust 2021","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"consider inserting whitespace here","code":null,"level":"help","spans":[{"file_name":"src/nft_badges.rs","byte_start":21261,"byte_end":21261,"line_start":563,"line_end":563,"column_start":94,"column_end":94,"is_primary":true,"text":[{"text":" ","highlight_start":94,"highlight_end":94}],"label":null,"suggested_replacement":" ","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: prefix `FFFFFF` is unknown\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/nft_badges.rs:563:88\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m563\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^\u001b[0m \u001b[1m\u001b[91munknown prefix\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: prefixed identifiers and literals are reserved since Rust 2021\n\u001b[1m\u001b[96mhelp\u001b[0m: consider inserting whitespace here\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m563\u001b[0m \u001b[1m\u001b[94m| \u001b[0m \n \u001b[1m\u001b[94m|\u001b[0m \u001b[92m+\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"prefix `FFD700` is unknown","code":null,"level":"error","spans":[{"file_name":"src/nft_badges.rs","byte_start":21416,"byte_end":21422,"line_start":568,"line_end":568,"column_start":88,"column_end":94,"is_primary":true,"text":[{"text":" ","highlight_start":88,"highlight_end":94}],"label":"unknown prefix","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"prefixed identifiers and literals are reserved since Rust 2021","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"consider inserting whitespace here","code":null,"level":"help","spans":[{"file_name":"src/nft_badges.rs","byte_start":21422,"byte_end":21422,"line_start":568,"line_end":568,"column_start":94,"column_end":94,"is_primary":true,"text":[{"text":" ","highlight_start":94,"highlight_end":94}],"label":null,"suggested_replacement":" ","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: prefix `FFD700` is unknown\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/nft_badges.rs:568:88\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m568\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^\u001b[0m \u001b[1m\u001b[91munknown prefix\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: prefixed identifiers and literals are reserved since Rust 2021\n\u001b[1m\u001b[96mhelp\u001b[0m: consider inserting whitespace here\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m568\u001b[0m \u001b[1m\u001b[94m| \u001b[0m \n \u001b[1m\u001b[94m|\u001b[0m \u001b[92m+\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"prefix `FFFFFF` is unknown","code":null,"level":"error","spans":[{"file_name":"src/nft_badges.rs","byte_start":21572,"byte_end":21578,"line_start":573,"line_end":573,"column_start":92,"column_end":98,"is_primary":true,"text":[{"text":" ","highlight_start":92,"highlight_end":98}],"label":"unknown prefix","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"prefixed identifiers and literals are reserved since Rust 2021","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"consider inserting whitespace here","code":null,"level":"help","spans":[{"file_name":"src/nft_badges.rs","byte_start":21578,"byte_end":21578,"line_start":573,"line_end":573,"column_start":98,"column_end":98,"is_primary":true,"text":[{"text":" ","highlight_start":98,"highlight_end":98}],"label":null,"suggested_replacement":" ","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: prefix `FFFFFF` is unknown\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/nft_badges.rs:573:92\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m573\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^\u001b[0m \u001b[1m\u001b[91munknown prefix\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: prefixed identifiers and literals are reserved since Rust 2021\n\u001b[1m\u001b[96mhelp\u001b[0m: consider inserting whitespace here\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m573\u001b[0m \u001b[1m\u001b[94m| \u001b[0m \n \u001b[1m\u001b[94m|\u001b[0m \u001b[92m+\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"expected `,`, found `\" stroke-width=\"`","code":null,"level":"error","spans":[{"file_name":"src/nft_badges.rs","byte_start":20719,"byte_end":20735,"line_start":547,"line_end":547,"column_start":36,"column_end":52,"is_primary":true,"text":[{"text":" fill=\"none\" stroke=\"#FFFFFF\" stroke-width=\"2\" opacity=\"0.5\"/>","highlight_start":36,"highlight_end":52}],"label":"expected `,`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: expected `,`, found `\" stroke-width=\"`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/nft_badges.rs:547:36\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m547\u001b[0m \u001b[1m\u001b[94m|\u001b[0m fill=\"none\" stroke=\"#FFFFFF\" stroke-width=\"2\" opacity=\"0.5\"/>\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91mexpected `,`\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"unused imports: `HardwareTier`, `TokenAmount`, and `TxHash`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/nft_badges.rs","byte_start":370,"byte_end":382,"line_start":13,"line_end":13,"column_start":40,"column_end":52,"is_primary":true,"text":[{"text":"use crate::core_types::{WalletAddress, HardwareTier, TokenAmount, TxHash};","highlight_start":40,"highlight_end":52}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/nft_badges.rs","byte_start":384,"byte_end":395,"line_start":13,"line_end":13,"column_start":54,"column_end":65,"is_primary":true,"text":[{"text":"use crate::core_types::{WalletAddress, HardwareTier, TokenAmount, TxHash};","highlight_start":54,"highlight_end":65}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/nft_badges.rs","byte_start":397,"byte_end":403,"line_start":13,"line_end":13,"column_start":67,"column_end":73,"is_primary":true,"text":[{"text":"use crate::core_types::{WalletAddress, HardwareTier, TokenAmount, TxHash};","highlight_start":67,"highlight_end":73}],"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 imports","code":null,"level":"help","spans":[{"file_name":"src/nft_badges.rs","byte_start":368,"byte_end":403,"line_start":13,"line_end":13,"column_start":38,"column_end":73,"is_primary":true,"text":[{"text":"use crate::core_types::{WalletAddress, HardwareTier, TokenAmount, TxHash};","highlight_start":38,"highlight_end":73}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"src/nft_badges.rs","byte_start":354,"byte_end":355,"line_start":13,"line_end":13,"column_start":24,"column_end":25,"is_primary":true,"text":[{"text":"use crate::core_types::{WalletAddress, HardwareTier, TokenAmount, TxHash};","highlight_start":24,"highlight_end":25}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"src/nft_badges.rs","byte_start":403,"byte_end":404,"line_start":13,"line_end":13,"column_start":73,"column_end":74,"is_primary":true,"text":[{"text":"use crate::core_types::{WalletAddress, HardwareTier, TokenAmount, TxHash};","highlight_start":73,"highlight_end":74}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused imports: `HardwareTier`, `TokenAmount`, and `TxHash`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/nft_badges.rs:13:40\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m13\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use crate::core_types::{WalletAddress, HardwareTier, TokenAmount, TxHash};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^\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: `std::net::SocketAddr`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/network.rs","byte_start":250,"byte_end":270,"line_start":9,"line_end":9,"column_start":5,"column_end":25,"is_primary":true,"text":[{"text":"use std::net::SocketAddr;","highlight_start":5,"highlight_end":25}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the whole `use` item","code":null,"level":"help","spans":[{"file_name":"src/network.rs","byte_start":246,"byte_end":273,"line_start":9,"line_end":10,"column_start":1,"column_end":1,"is_primary":true,"text":[{"text":"use std::net::SocketAddr;","highlight_start":1,"highlight_end":26},{"text":"use std::time::{Duration, Instant};","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: `std::net::SocketAddr`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/network.rs:9:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m9\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use std::net::SocketAddr;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"unused import: `TxHash`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/network.rs","byte_start":479,"byte_end":485,"line_start":16,"line_end":16,"column_start":51,"column_end":57,"is_primary":true,"text":[{"text":" Block, BlockHash, WalletAddress, Transaction, TxHash,","highlight_start":51,"highlight_end":57}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src/network.rs","byte_start":477,"byte_end":485,"line_start":16,"line_end":16,"column_start":49,"column_end":57,"is_primary":true,"text":[{"text":" Block, BlockHash, WalletAddress, Transaction, TxHash,","highlight_start":49,"highlight_end":57}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `TxHash`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/network.rs:16:51\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m16\u001b[0m \u001b[1m\u001b[94m|\u001b[0m Block, BlockHash, WalletAddress, Transaction, TxHash,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"unused import: `super::*`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/network.rs","byte_start":15388,"byte_end":15396,"line_start":528,"line_end":528,"column_start":9,"column_end":17,"is_primary":true,"text":[{"text":" use super::*;","highlight_start":9,"highlight_end":17}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the whole `use` item","code":null,"level":"help","spans":[{"file_name":"src/network.rs","byte_start":15384,"byte_end":15397,"line_start":528,"line_end":528,"column_start":5,"column_end":18,"is_primary":true,"text":[{"text":" use super::*;","highlight_start":5,"highlight_end":18}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `super::*`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/network.rs:528:9\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m528\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use super::*;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"unused import: `TokenAmount`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/governance.rs","byte_start":369,"byte_end":380,"line_start":10,"line_end":10,"column_start":40,"column_end":51,"is_primary":true,"text":[{"text":"use crate::core_types::{WalletAddress, TokenAmount};","highlight_start":40,"highlight_end":51}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src/governance.rs","byte_start":367,"byte_end":380,"line_start":10,"line_end":10,"column_start":38,"column_end":51,"is_primary":true,"text":[{"text":"use crate::core_types::{WalletAddress, TokenAmount};","highlight_start":38,"highlight_end":51}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"src/governance.rs","byte_start":353,"byte_end":354,"line_start":10,"line_end":10,"column_start":24,"column_end":25,"is_primary":true,"text":[{"text":"use crate::core_types::{WalletAddress, TokenAmount};","highlight_start":24,"highlight_end":25}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"src/governance.rs","byte_start":380,"byte_end":381,"line_start":10,"line_end":10,"column_start":51,"column_end":52,"is_primary":true,"text":[{"text":"use crate::core_types::{WalletAddress, TokenAmount};","highlight_start":51,"highlight_end":52}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `TokenAmount`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/governance.rs:10:40\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m10\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use crate::core_types::{WalletAddress, TokenAmount};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"unused imports: `BlockHash`, `TokenAmount`, and `Transaction`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/ergo_bridge.rs","byte_start":435,"byte_end":446,"line_start":12,"line_end":12,"column_start":40,"column_end":51,"is_primary":true,"text":[{"text":"use crate::core_types::{WalletAddress, TokenAmount, Block, BlockHash, Transaction};","highlight_start":40,"highlight_end":51}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/ergo_bridge.rs","byte_start":455,"byte_end":464,"line_start":12,"line_end":12,"column_start":60,"column_end":69,"is_primary":true,"text":[{"text":"use crate::core_types::{WalletAddress, TokenAmount, Block, BlockHash, Transaction};","highlight_start":60,"highlight_end":69}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/ergo_bridge.rs","byte_start":466,"byte_end":477,"line_start":12,"line_end":12,"column_start":71,"column_end":82,"is_primary":true,"text":[{"text":"use crate::core_types::{WalletAddress, TokenAmount, Block, BlockHash, Transaction};","highlight_start":71,"highlight_end":82}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the unused imports","code":null,"level":"help","spans":[{"file_name":"src/ergo_bridge.rs","byte_start":433,"byte_end":446,"line_start":12,"line_end":12,"column_start":38,"column_end":51,"is_primary":true,"text":[{"text":"use crate::core_types::{WalletAddress, TokenAmount, Block, BlockHash, Transaction};","highlight_start":38,"highlight_end":51}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"src/ergo_bridge.rs","byte_start":453,"byte_end":477,"line_start":12,"line_end":12,"column_start":58,"column_end":82,"is_primary":true,"text":[{"text":"use crate::core_types::{WalletAddress, TokenAmount, Block, BlockHash, Transaction};","highlight_start":58,"highlight_end":82}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused imports: `BlockHash`, `TokenAmount`, and `Transaction`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:12:40\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m12\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use crate::core_types::{WalletAddress, TokenAmount, Block, BlockHash, Transaction};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"unused import: `super::*`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/ergo_bridge.rs","byte_start":11752,"byte_end":11760,"line_start":382,"line_end":382,"column_start":9,"column_end":17,"is_primary":true,"text":[{"text":" use super::*;","highlight_start":9,"highlight_end":17}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the whole `use` item","code":null,"level":"help","spans":[{"file_name":"src/ergo_bridge.rs","byte_start":11748,"byte_end":11761,"line_start":382,"line_end":382,"column_start":5,"column_end":18,"is_primary":true,"text":[{"text":" use super::*;","highlight_start":5,"highlight_end":18}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `super::*`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:382:9\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m382\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use super::*;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"no field `address` on type `WalletAddress`","code":{"code":"E0609","explanation":"Attempted to access a nonexistent field in a struct.\n\nErroneous code example:\n\n```compile_fail,E0609\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.foo); // error: no field `foo` on type `StructWithFields`\n```\n\nTo fix this error, check that you didn't misspell the field's name or that the\nfield actually exists. Example:\n\n```\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.x); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/governance.rs","byte_start":14546,"byte_end":14553,"line_start":478,"line_end":478,"column_start":54,"column_end":61,"is_primary":true,"text":[{"text":" let reputation = self.reputations.get(&voter.address);","highlight_start":54,"highlight_end":61}],"label":"unknown field","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"available field is: `0`","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0609]\u001b[0m\u001b[1m: no field `address` on type `WalletAddress`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/governance.rs:478:54\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m478\u001b[0m \u001b[1m\u001b[94m|\u001b[0m let reputation = self.reputations.get(&voter.address);\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^\u001b[0m \u001b[1m\u001b[91munknown field\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: available field is: `0`\n\n"} +{"$message_type":"diagnostic","message":"no field `address` on type `WalletAddress`","code":{"code":"E0609","explanation":"Attempted to access a nonexistent field in a struct.\n\nErroneous code example:\n\n```compile_fail,E0609\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.foo); // error: no field `foo` on type `StructWithFields`\n```\n\nTo fix this error, check that you didn't misspell the field's name or that the\nfield actually exists. Example:\n\n```\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.x); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/governance.rs","byte_start":18959,"byte_end":18966,"line_start":610,"line_end":610,"column_start":29,"column_end":36,"is_primary":true,"text":[{"text":" let key = to_wallet.address.clone();","highlight_start":29,"highlight_end":36}],"label":"unknown field","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"available field is: `0`","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0609]\u001b[0m\u001b[1m: no field `address` on type `WalletAddress`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/governance.rs:610:29\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m610\u001b[0m \u001b[1m\u001b[94m|\u001b[0m let key = to_wallet.address.clone();\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^\u001b[0m \u001b[1m\u001b[91munknown field\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: available field is: `0`\n\n"} +{"$message_type":"diagnostic","message":"no field `address` on type `&WalletAddress`","code":{"code":"E0609","explanation":"Attempted to access a nonexistent field in a struct.\n\nErroneous code example:\n\n```compile_fail,E0609\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.foo); // error: no field `foo` on type `StructWithFields`\n```\n\nTo fix this error, check that you didn't misspell the field's name or that the\nfield actually exists. Example:\n\n```\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.x); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/governance.rs","byte_start":19336,"byte_end":19343,"line_start":619,"line_end":619,"column_start":26,"column_end":33,"is_primary":true,"text":[{"text":" .get(&wallet.address)","highlight_start":26,"highlight_end":33}],"label":"unknown field","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"available field is: `0`","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0609]\u001b[0m\u001b[1m: no field `address` on type `&WalletAddress`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/governance.rs:619:26\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m619\u001b[0m \u001b[1m\u001b[94m|\u001b[0m .get(&wallet.address)\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^\u001b[0m \u001b[1m\u001b[91munknown field\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: available field is: `0`\n\n"} +{"$message_type":"diagnostic","message":"no field `address` on type `&WalletAddress`","code":{"code":"E0609","explanation":"Attempted to access a nonexistent field in a struct.\n\nErroneous code example:\n\n```compile_fail,E0609\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.foo); // error: no field `foo` on type `StructWithFields`\n```\n\nTo fix this error, check that you didn't misspell the field's name or that the\nfield actually exists. Example:\n\n```\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.x); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/governance.rs","byte_start":19831,"byte_end":19838,"line_start":633,"line_end":633,"column_start":27,"column_end":34,"is_primary":true,"text":[{"text":" .entry(wallet.address.clone())","highlight_start":27,"highlight_end":34}],"label":"unknown field","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"available field is: `0`","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0609]\u001b[0m\u001b[1m: no field `address` on type `&WalletAddress`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/governance.rs:633:27\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m633\u001b[0m \u001b[1m\u001b[94m|\u001b[0m .entry(wallet.address.clone())\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^\u001b[0m \u001b[1m\u001b[91munknown field\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: available field is: `0`\n\n"} +{"$message_type":"diagnostic","message":"no field `address` on type `WalletAddress`","code":{"code":"E0609","explanation":"Attempted to access a nonexistent field in a struct.\n\nErroneous code example:\n\n```compile_fail,E0609\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.foo); // error: no field `foo` on type `StructWithFields`\n```\n\nTo fix this error, check that you didn't misspell the field's name or that the\nfield actually exists. Example:\n\n```\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.x); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/governance.rs","byte_start":20783,"byte_end":20790,"line_start":658,"line_end":658,"column_start":69,"column_end":76,"is_primary":true,"text":[{"text":" if let Some(rep) = self.reputations.get_mut(&vote.voter.address) {","highlight_start":69,"highlight_end":76}],"label":"unknown field","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"available field is: `0`","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0609]\u001b[0m\u001b[1m: no field `address` on type `WalletAddress`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/governance.rs:658:69\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m658\u001b[0m \u001b[1m\u001b[94m|\u001b[0m if let Some(rep) = self.reputations.get_mut(&vote.voter.address) {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^\u001b[0m \u001b[1m\u001b[91munknown field\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: available field is: `0`\n\n"} +{"$message_type":"diagnostic","message":"no field `address` on type `&WalletAddress`","code":{"code":"E0609","explanation":"Attempted to access a nonexistent field in a struct.\n\nErroneous code example:\n\n```compile_fail,E0609\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.foo); // error: no field `foo` on type `StructWithFields`\n```\n\nTo fix this error, check that you didn't misspell the field's name or that the\nfield actually exists. Example:\n\n```\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.x); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/ergo_bridge.rs","byte_start":2958,"byte_end":2965,"line_start":86,"line_end":86,"column_start":28,"column_end":35,"is_primary":true,"text":[{"text":" tree.extend(wallet.address.as_bytes());","highlight_start":28,"highlight_end":35}],"label":"unknown field","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"available field is: `0`","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0609]\u001b[0m\u001b[1m: no field `address` on type `&WalletAddress`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:86:28\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m86\u001b[0m \u001b[1m\u001b[94m|\u001b[0m tree.extend(wallet.address.as_bytes());\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^\u001b[0m \u001b[1m\u001b[91munknown field\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: available field is: `0`\n\n"} +{"$message_type":"diagnostic","message":"the trait bound `[u8; 33]: serde::Serialize` 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":"src/ergo_bridge.rs","byte_start":3286,"byte_end":3295,"line_start":101,"line_end":101,"column_start":24,"column_end":33,"is_primary":true,"text":[{"text":"#[derive(Debug, Clone, Serialize, Deserialize)]","highlight_start":24,"highlight_end":33}],"label":"the trait `Serialize` is not implemented for `[u8; 33]`","suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"src/ergo_bridge.rs","byte_start":3286,"byte_end":3295,"line_start":101,"line_end":101,"column_start":24,"column_end":33,"is_primary":false,"text":[{"text":"#[derive(Debug, Clone, Serialize, Deserialize)]","highlight_start":24,"highlight_end":33}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},"macro_decl_name":"#[derive(Serialize)]","def_site_span":{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/lib.rs","byte_start":3101,"byte_end":3159,"line_start":114,"line_end":114,"column_start":1,"column_end":59,"is_primary":false,"text":[{"text":"pub fn derive_serialize(input: TokenStream) -> TokenStream {","highlight_start":1,"highlight_end":59}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},{"file_name":"src/ergo_bridge.rs","byte_start":3483,"byte_end":3491,"line_start":108,"line_end":108,"column_start":18,"column_end":26,"is_primary":false,"text":[{"text":" GroupElement([u8; 33]),","highlight_start":18,"highlight_end":26}],"label":"required by a bound introduced by this call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for local types consider adding `#[derive(serde::Serialize)]` to your `[u8; 33]` type","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for types from other crates check whether the crate offers a `serde` feature flag","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the following other types implement trait `Serialize`:\n [T; 0]\n [T]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\nand 26 others","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `serialize_newtype_variant`","code":null,"level":"note","spans":[{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs","byte_start":32129,"byte_end":32154,"line_start":950,"line_end":950,"column_start":8,"column_end":33,"is_primary":false,"text":[{"text":" fn serialize_newtype_variant(","highlight_start":8,"highlight_end":33}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs","byte_start":32348,"byte_end":32357,"line_start":958,"line_end":958,"column_start":21,"column_end":30,"is_primary":true,"text":[{"text":" T: ?Sized + Serialize;","highlight_start":21,"highlight_end":30}],"label":"required by this bound in `Serializer::serialize_newtype_variant`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `[u8; 33]: serde::Serialize` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:101:24\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m101\u001b[0m \u001b[1m\u001b[94m|\u001b[0m #[derive(Debug, Clone, Serialize, Deserialize)]\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^^\u001b[0m \u001b[1m\u001b[91mthe trait `Serialize` is not implemented for `[u8; 33]`\u001b[0m\n\u001b[1m\u001b[94m...\u001b[0m\n\u001b[1m\u001b[94m108\u001b[0m \u001b[1m\u001b[94m|\u001b[0m GroupElement([u8; 33]),\n \u001b[1m\u001b[94m|\u001b[0m \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[1mnote\u001b[0m: for local types consider adding `#[derive(serde::Serialize)]` to your `[u8; 33]` type\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for types from other crates check whether the crate offers a `serde` feature flag\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the following other types implement trait `Serialize`:\n [T; 0]\n [T]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\n and 26 others\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `serialize_newtype_variant`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs:958:21\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m950\u001b[0m \u001b[1m\u001b[94m|\u001b[0m fn serialize_newtype_variant(\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[94m...\u001b[0m\n\u001b[1m\u001b[94m958\u001b[0m \u001b[1m\u001b[94m|\u001b[0m T: ?Sized + Serialize;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `Serializer::serialize_newtype_variant`\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)\n\n"} +{"$message_type":"diagnostic","message":"the trait bound `[u8; 33]: serde::Deserialize<'de>` 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":"src/ergo_bridge.rs","byte_start":3483,"byte_end":3491,"line_start":108,"line_end":108,"column_start":18,"column_end":26,"is_primary":true,"text":[{"text":" GroupElement([u8; 33]),","highlight_start":18,"highlight_end":26}],"label":"the trait `Deserialize<'_>` is not implemented for `[u8; 33]`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for types from other crates check whether the crate offers a `serde` feature flag","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\nand 26 others","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `newtype_variant`","code":null,"level":"note","spans":[{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":77136,"byte_end":77151,"line_start":2180,"line_end":2180,"column_start":8,"column_end":23,"is_primary":false,"text":[{"text":" fn newtype_variant(self) -> Result","highlight_start":8,"highlight_end":23}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":77208,"byte_end":77224,"line_start":2182,"line_end":2182,"column_start":12,"column_end":28,"is_primary":true,"text":[{"text":" T: Deserialize<'de>,","highlight_start":12,"highlight_end":28}],"label":"required by this bound in `VariantAccess::newtype_variant`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `[u8; 33]: serde::Deserialize<'de>` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:108:18\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m 108\u001b[0m \u001b[1m\u001b[94m|\u001b[0m GroupElement([u8; 33]),\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^\u001b[0m \u001b[1m\u001b[91mthe trait `Deserialize<'_>` is not implemented for `[u8; 33]`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for types from other crates check whether the crate offers a `serde` feature flag\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\n and 26 others\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `newtype_variant`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:2182:12\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m2180\u001b[0m \u001b[1m\u001b[94m|\u001b[0m fn newtype_variant(self) -> Result\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[94m2181\u001b[0m \u001b[1m\u001b[94m|\u001b[0m where\n\u001b[1m\u001b[94m2182\u001b[0m \u001b[1m\u001b[94m|\u001b[0m T: Deserialize<'de>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `VariantAccess::newtype_variant`\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"no field `antiquity_score` on type `&ValidatedProof`","code":{"code":"E0609","explanation":"Attempted to access a nonexistent field in a struct.\n\nErroneous code example:\n\n```compile_fail,E0609\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.foo); // error: no field `foo` on type `StructWithFields`\n```\n\nTo fix this error, check that you didn't misspell the field's name or that the\nfield actually exists. Example:\n\n```\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.x); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/ergo_bridge.rs","byte_start":8647,"byte_end":8662,"line_start":283,"line_end":283,"column_start":74,"column_end":89,"is_primary":true,"text":[{"text":" regs.insert(\"R4\".to_string(), RegisterValue::Long((proof.antiquity_score * 100.0) as i64));","highlight_start":74,"highlight_end":89}],"label":"unknown field","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"available fields are: `wallet`, `hardware`, `multiplier`, `anti_emulation_hash`, `validated_at`","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0609]\u001b[0m\u001b[1m: no field `antiquity_score` on type `&ValidatedProof`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:283:74\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m283\u001b[0m \u001b[1m\u001b[94m|\u001b[0m regs.insert(\"R4\".to_string(), RegisterValue::Long((proof.antiquity_score * 100.0) as i64));\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91munknown field\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: available fields are: `wallet`, `hardware`, `multiplier`, `anti_emulation_hash`, `validated_at`\n\n"} +{"$message_type":"diagnostic","message":"no field `cpu_model` on type `HardwareInfo`","code":{"code":"E0609","explanation":"Attempted to access a nonexistent field in a struct.\n\nErroneous code example:\n\n```compile_fail,E0609\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.foo); // error: no field `foo` on type `StructWithFields`\n```\n\nTo fix this error, check that you didn't misspell the field's name or that the\nfield actually exists. Example:\n\n```\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.x); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/ergo_bridge.rs","byte_start":8808,"byte_end":8817,"line_start":285,"line_end":285,"column_start":87,"column_end":96,"is_primary":true,"text":[{"text":" regs.insert(\"R5\".to_string(), RegisterValue::ByteArray(proof.hardware.cpu_model.as_bytes().to_vec()));","highlight_start":87,"highlight_end":96}],"label":"unknown field","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"available fields are: `model`, `generation`, `age_years`, `tier`, `multiplier`, `characteristics`","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0609]\u001b[0m\u001b[1m: no field `cpu_model` on type `HardwareInfo`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:285:87\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m285\u001b[0m \u001b[1m\u001b[94m|\u001b[0m regs.insert(\"R5\".to_string(), RegisterValue::ByteArray(proof.hardware.cpu_model.as_bytes().to_vec()));\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^^\u001b[0m \u001b[1m\u001b[91munknown field\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: available fields are: `model`, `generation`, `age_years`, `tier`, `multiplier`, `characteristics`\n\n"} +{"$message_type":"diagnostic","message":"no method named `generate_hardware_hash` found for struct `HardwareInfo` in the current scope","code":{"code":"E0599","explanation":"This error occurs when a method is used on a type which doesn't implement it:\n\nErroneous code example:\n\n```compile_fail,E0599\nstruct Mouth;\n\nlet x = Mouth;\nx.chocolate(); // error: no method named `chocolate` found for type `Mouth`\n // in the current scope\n```\n\nIn this case, you need to implement the `chocolate` method to fix the error:\n\n```\nstruct Mouth;\n\nimpl Mouth {\n fn chocolate(&self) { // We implement the `chocolate` method here.\n println!(\"Hmmm! I love chocolate!\");\n }\n}\n\nlet x = Mouth;\nx.chocolate(); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/ergo_bridge.rs","byte_start":9189,"byte_end":9211,"line_start":296,"line_end":296,"column_start":51,"column_end":73,"is_primary":true,"text":[{"text":" hardware_hash: proof.hardware.generate_hardware_hash(),","highlight_start":51,"highlight_end":73}],"label":"method not found in `HardwareInfo`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/core_types.rs","byte_start":5325,"byte_end":5348,"line_start":174,"line_end":174,"column_start":1,"column_end":24,"is_primary":false,"text":[{"text":"pub struct HardwareInfo {","highlight_start":1,"highlight_end":24}],"label":"method `generate_hardware_hash` not found for this struct","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0599]\u001b[0m\u001b[1m: no method named `generate_hardware_hash` found for struct `HardwareInfo` in the current scope\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:296:51\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m296\u001b[0m \u001b[1m\u001b[94m|\u001b[0m hardware_hash: proof.hardware.generate_hardware_hash(),\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91mmethod not found in `HardwareInfo`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m::: \u001b[0msrc/core_types.rs:174:1\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m174\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub struct HardwareInfo {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m-----------------------\u001b[0m \u001b[1m\u001b[94mmethod `generate_hardware_hash` not found for this struct\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"no field `antiquity_score` on type `&ValidatedProof`","code":{"code":"E0609","explanation":"Attempted to access a nonexistent field in a struct.\n\nErroneous code example:\n\n```compile_fail,E0609\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.foo); // error: no field `foo` on type `StructWithFields`\n```\n\nTo fix this error, check that you didn't misspell the field's name or that the\nfield actually exists. Example:\n\n```\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.x); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/ergo_bridge.rs","byte_start":9259,"byte_end":9274,"line_start":297,"line_end":297,"column_start":44,"column_end":59,"is_primary":true,"text":[{"text":" antiquity_score: proof.antiquity_score,","highlight_start":44,"highlight_end":59}],"label":"unknown field","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"available fields are: `wallet`, `hardware`, `multiplier`, `anti_emulation_hash`, `validated_at`","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0609]\u001b[0m\u001b[1m: no field `antiquity_score` on type `&ValidatedProof`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:297:44\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m297\u001b[0m \u001b[1m\u001b[94m|\u001b[0m antiquity_score: proof.antiquity_score,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91munknown field\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: available fields are: `wallet`, `hardware`, `multiplier`, `anti_emulation_hash`, `validated_at`\n\n"} +{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n x + 1\n}\n\nplus_one(\"Not a number\");\n// ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n// --- ^^^^^^^^^^^^^ expected `f32`, found `&str`\n// |\n// expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/ergo_bridge.rs","byte_start":9311,"byte_end":9344,"line_start":298,"line_end":298,"column_start":35,"column_end":68,"is_primary":true,"text":[{"text":" entropy_hash: proof.anti_emulation_hash.clone(),","highlight_start":35,"highlight_end":68}],"label":"expected `String`, found `[u8; 32]`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0308]\u001b[0m\u001b[1m: mismatched types\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:298:35\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m298\u001b[0m \u001b[1m\u001b[94m|\u001b[0m entropy_hash: proof.anti_emulation_hash.clone(),\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91mexpected `String`, found `[u8; 32]`\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"the trait bound `[u8; 33]: serde::Serialize` 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":"src/ergo_bridge.rs","byte_start":9902,"byte_end":9912,"line_start":317,"line_end":317,"column_start":9,"column_end":19,"is_primary":true,"text":[{"text":" public_key: [u8; 33],","highlight_start":9,"highlight_end":19}],"label":"the trait `Serialize` is not implemented for `[u8; 33]`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/ergo_bridge.rs","byte_start":9862,"byte_end":9892,"line_start":316,"line_end":316,"column_start":9,"column_end":39,"is_primary":false,"text":[{"text":" /// Public key (group element)","highlight_start":9,"highlight_end":39}],"label":"required by a bound introduced by this call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for local types consider adding `#[derive(serde::Serialize)]` to your `[u8; 33]` type","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for types from other crates check whether the crate offers a `serde` feature flag","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the following other types implement trait `Serialize`:\n [T; 0]\n [T]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\nand 26 others","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `core_types::_::_serde::ser::SerializeStructVariant::serialize_field`","code":null,"level":"note","spans":[{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs","byte_start":64569,"byte_end":64584,"line_start":1985,"line_end":1985,"column_start":8,"column_end":23,"is_primary":false,"text":[{"text":" fn serialize_field(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error>","highlight_start":8,"highlight_end":23}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs","byte_start":64686,"byte_end":64695,"line_start":1987,"line_end":1987,"column_start":21,"column_end":30,"is_primary":true,"text":[{"text":" T: ?Sized + Serialize;","highlight_start":21,"highlight_end":30}],"label":"required by this bound in `SerializeStructVariant::serialize_field`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `[u8; 33]: serde::Serialize` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:317:9\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m 316\u001b[0m \u001b[1m\u001b[94m|\u001b[0m /// Public key (group element)\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m------------------------------\u001b[0m \u001b[1m\u001b[94mrequired by a bound introduced by this call\u001b[0m\n\u001b[1m\u001b[94m 317\u001b[0m \u001b[1m\u001b[94m|\u001b[0m public_key: [u8; 33],\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91mthe trait `Serialize` is not implemented for `[u8; 33]`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for local types consider adding `#[derive(serde::Serialize)]` to your `[u8; 33]` type\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for types from other crates check whether the crate offers a `serde` feature flag\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the following other types implement trait `Serialize`:\n [T; 0]\n [T]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\n and 26 others\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `core_types::_::_serde::ser::SerializeStructVariant::serialize_field`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs:1987:21\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1985\u001b[0m \u001b[1m\u001b[94m|\u001b[0m fn serialize_field(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error>\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[94m1986\u001b[0m \u001b[1m\u001b[94m|\u001b[0m where\n\u001b[1m\u001b[94m1987\u001b[0m \u001b[1m\u001b[94m|\u001b[0m T: ?Sized + Serialize;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `SerializeStructVariant::serialize_field`\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"the trait bound `[u8; 33]: serde::Serialize` 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":"src/ergo_bridge.rs","byte_start":10035,"byte_end":10036,"line_start":322,"line_end":322,"column_start":9,"column_end":10,"is_primary":true,"text":[{"text":" g: [u8; 33],","highlight_start":9,"highlight_end":10}],"label":"the trait `Serialize` is not implemented for `[u8; 33]`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/ergo_bridge.rs","byte_start":10010,"byte_end":10025,"line_start":321,"line_end":321,"column_start":9,"column_end":24,"is_primary":false,"text":[{"text":" /// Generator g","highlight_start":9,"highlight_end":24}],"label":"required by a bound introduced by this call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for local types consider adding `#[derive(serde::Serialize)]` to your `[u8; 33]` type","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for types from other crates check whether the crate offers a `serde` feature flag","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the following other types implement trait `Serialize`:\n [T; 0]\n [T]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\nand 26 others","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `core_types::_::_serde::ser::SerializeStructVariant::serialize_field`","code":null,"level":"note","spans":[{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs","byte_start":64569,"byte_end":64584,"line_start":1985,"line_end":1985,"column_start":8,"column_end":23,"is_primary":false,"text":[{"text":" fn serialize_field(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error>","highlight_start":8,"highlight_end":23}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs","byte_start":64686,"byte_end":64695,"line_start":1987,"line_end":1987,"column_start":21,"column_end":30,"is_primary":true,"text":[{"text":" T: ?Sized + Serialize;","highlight_start":21,"highlight_end":30}],"label":"required by this bound in `SerializeStructVariant::serialize_field`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `[u8; 33]: serde::Serialize` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:322:9\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m 321\u001b[0m \u001b[1m\u001b[94m|\u001b[0m /// Generator g\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m---------------\u001b[0m \u001b[1m\u001b[94mrequired by a bound introduced by this call\u001b[0m\n\u001b[1m\u001b[94m 322\u001b[0m \u001b[1m\u001b[94m|\u001b[0m g: [u8; 33],\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^\u001b[0m \u001b[1m\u001b[91mthe trait `Serialize` is not implemented for `[u8; 33]`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for local types consider adding `#[derive(serde::Serialize)]` to your `[u8; 33]` type\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for types from other crates check whether the crate offers a `serde` feature flag\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the following other types implement trait `Serialize`:\n [T; 0]\n [T]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\n and 26 others\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `core_types::_::_serde::ser::SerializeStructVariant::serialize_field`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs:1987:21\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1985\u001b[0m \u001b[1m\u001b[94m|\u001b[0m fn serialize_field(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error>\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[94m1986\u001b[0m \u001b[1m\u001b[94m|\u001b[0m where\n\u001b[1m\u001b[94m1987\u001b[0m \u001b[1m\u001b[94m|\u001b[0m T: ?Sized + Serialize;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `SerializeStructVariant::serialize_field`\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"the trait bound `[u8; 33]: serde::Serialize` 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":"src/ergo_bridge.rs","byte_start":10082,"byte_end":10083,"line_start":324,"line_end":324,"column_start":9,"column_end":10,"is_primary":true,"text":[{"text":" h: [u8; 33],","highlight_start":9,"highlight_end":10}],"label":"the trait `Serialize` is not implemented for `[u8; 33]`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/ergo_bridge.rs","byte_start":10057,"byte_end":10072,"line_start":323,"line_end":323,"column_start":9,"column_end":24,"is_primary":false,"text":[{"text":" /// Generator h","highlight_start":9,"highlight_end":24}],"label":"required by a bound introduced by this call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for local types consider adding `#[derive(serde::Serialize)]` to your `[u8; 33]` type","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for types from other crates check whether the crate offers a `serde` feature flag","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the following other types implement trait `Serialize`:\n [T; 0]\n [T]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\nand 26 others","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `core_types::_::_serde::ser::SerializeStructVariant::serialize_field`","code":null,"level":"note","spans":[{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs","byte_start":64569,"byte_end":64584,"line_start":1985,"line_end":1985,"column_start":8,"column_end":23,"is_primary":false,"text":[{"text":" fn serialize_field(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error>","highlight_start":8,"highlight_end":23}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs","byte_start":64686,"byte_end":64695,"line_start":1987,"line_end":1987,"column_start":21,"column_end":30,"is_primary":true,"text":[{"text":" T: ?Sized + Serialize;","highlight_start":21,"highlight_end":30}],"label":"required by this bound in `SerializeStructVariant::serialize_field`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `[u8; 33]: serde::Serialize` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:324:9\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m 323\u001b[0m \u001b[1m\u001b[94m|\u001b[0m /// Generator h\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m---------------\u001b[0m \u001b[1m\u001b[94mrequired by a bound introduced by this call\u001b[0m\n\u001b[1m\u001b[94m 324\u001b[0m \u001b[1m\u001b[94m|\u001b[0m h: [u8; 33],\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^\u001b[0m \u001b[1m\u001b[91mthe trait `Serialize` is not implemented for `[u8; 33]`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for local types consider adding `#[derive(serde::Serialize)]` to your `[u8; 33]` type\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for types from other crates check whether the crate offers a `serde` feature flag\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the following other types implement trait `Serialize`:\n [T; 0]\n [T]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\n and 26 others\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `core_types::_::_serde::ser::SerializeStructVariant::serialize_field`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs:1987:21\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1985\u001b[0m \u001b[1m\u001b[94m|\u001b[0m fn serialize_field(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error>\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[94m1986\u001b[0m \u001b[1m\u001b[94m|\u001b[0m where\n\u001b[1m\u001b[94m1987\u001b[0m \u001b[1m\u001b[94m|\u001b[0m T: ?Sized + Serialize;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `SerializeStructVariant::serialize_field`\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"the trait bound `[u8; 33]: serde::Serialize` 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":"src/ergo_bridge.rs","byte_start":10125,"byte_end":10126,"line_start":326,"line_end":326,"column_start":9,"column_end":10,"is_primary":true,"text":[{"text":" u: [u8; 33],","highlight_start":9,"highlight_end":10}],"label":"the trait `Serialize` is not implemented for `[u8; 33]`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/ergo_bridge.rs","byte_start":10104,"byte_end":10115,"line_start":325,"line_end":325,"column_start":9,"column_end":20,"is_primary":false,"text":[{"text":" /// u = g^x","highlight_start":9,"highlight_end":20}],"label":"required by a bound introduced by this call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for local types consider adding `#[derive(serde::Serialize)]` to your `[u8; 33]` type","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for types from other crates check whether the crate offers a `serde` feature flag","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the following other types implement trait `Serialize`:\n [T; 0]\n [T]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\nand 26 others","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `core_types::_::_serde::ser::SerializeStructVariant::serialize_field`","code":null,"level":"note","spans":[{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs","byte_start":64569,"byte_end":64584,"line_start":1985,"line_end":1985,"column_start":8,"column_end":23,"is_primary":false,"text":[{"text":" fn serialize_field(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error>","highlight_start":8,"highlight_end":23}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs","byte_start":64686,"byte_end":64695,"line_start":1987,"line_end":1987,"column_start":21,"column_end":30,"is_primary":true,"text":[{"text":" T: ?Sized + Serialize;","highlight_start":21,"highlight_end":30}],"label":"required by this bound in `SerializeStructVariant::serialize_field`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `[u8; 33]: serde::Serialize` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:326:9\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m 325\u001b[0m \u001b[1m\u001b[94m|\u001b[0m /// u = g^x\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m-----------\u001b[0m \u001b[1m\u001b[94mrequired by a bound introduced by this call\u001b[0m\n\u001b[1m\u001b[94m 326\u001b[0m \u001b[1m\u001b[94m|\u001b[0m u: [u8; 33],\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^\u001b[0m \u001b[1m\u001b[91mthe trait `Serialize` is not implemented for `[u8; 33]`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for local types consider adding `#[derive(serde::Serialize)]` to your `[u8; 33]` type\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for types from other crates check whether the crate offers a `serde` feature flag\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the following other types implement trait `Serialize`:\n [T; 0]\n [T]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\n and 26 others\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `core_types::_::_serde::ser::SerializeStructVariant::serialize_field`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs:1987:21\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1985\u001b[0m \u001b[1m\u001b[94m|\u001b[0m fn serialize_field(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error>\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[94m1986\u001b[0m \u001b[1m\u001b[94m|\u001b[0m where\n\u001b[1m\u001b[94m1987\u001b[0m \u001b[1m\u001b[94m|\u001b[0m T: ?Sized + Serialize;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `SerializeStructVariant::serialize_field`\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"the trait bound `[u8; 33]: serde::Serialize` 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":"src/ergo_bridge.rs","byte_start":10168,"byte_end":10169,"line_start":328,"line_end":328,"column_start":9,"column_end":10,"is_primary":true,"text":[{"text":" v: [u8; 33],","highlight_start":9,"highlight_end":10}],"label":"the trait `Serialize` is not implemented for `[u8; 33]`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/ergo_bridge.rs","byte_start":10147,"byte_end":10158,"line_start":327,"line_end":327,"column_start":9,"column_end":20,"is_primary":false,"text":[{"text":" /// v = h^x","highlight_start":9,"highlight_end":20}],"label":"required by a bound introduced by this call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for local types consider adding `#[derive(serde::Serialize)]` to your `[u8; 33]` type","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for types from other crates check whether the crate offers a `serde` feature flag","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the following other types implement trait `Serialize`:\n [T; 0]\n [T]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\nand 26 others","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `core_types::_::_serde::ser::SerializeStructVariant::serialize_field`","code":null,"level":"note","spans":[{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs","byte_start":64569,"byte_end":64584,"line_start":1985,"line_end":1985,"column_start":8,"column_end":23,"is_primary":false,"text":[{"text":" fn serialize_field(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error>","highlight_start":8,"highlight_end":23}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs","byte_start":64686,"byte_end":64695,"line_start":1987,"line_end":1987,"column_start":21,"column_end":30,"is_primary":true,"text":[{"text":" T: ?Sized + Serialize;","highlight_start":21,"highlight_end":30}],"label":"required by this bound in `SerializeStructVariant::serialize_field`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `[u8; 33]: serde::Serialize` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:328:9\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m 327\u001b[0m \u001b[1m\u001b[94m|\u001b[0m /// v = h^x\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m-----------\u001b[0m \u001b[1m\u001b[94mrequired by a bound introduced by this call\u001b[0m\n\u001b[1m\u001b[94m 328\u001b[0m \u001b[1m\u001b[94m|\u001b[0m v: [u8; 33],\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^\u001b[0m \u001b[1m\u001b[91mthe trait `Serialize` is not implemented for `[u8; 33]`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for local types consider adding `#[derive(serde::Serialize)]` to your `[u8; 33]` type\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for types from other crates check whether the crate offers a `serde` feature flag\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the following other types implement trait `Serialize`:\n [T; 0]\n [T]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\n and 26 others\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `core_types::_::_serde::ser::SerializeStructVariant::serialize_field`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs:1987:21\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1985\u001b[0m \u001b[1m\u001b[94m|\u001b[0m fn serialize_field(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error>\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[94m1986\u001b[0m \u001b[1m\u001b[94m|\u001b[0m where\n\u001b[1m\u001b[94m1987\u001b[0m \u001b[1m\u001b[94m|\u001b[0m T: ?Sized + Serialize;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `SerializeStructVariant::serialize_field`\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"the trait bound `[u8; 33]: serde::Deserialize<'de>` 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":"src/ergo_bridge.rs","byte_start":9914,"byte_end":9922,"line_start":317,"line_end":317,"column_start":21,"column_end":29,"is_primary":true,"text":[{"text":" public_key: [u8; 33],","highlight_start":21,"highlight_end":29}],"label":"the trait `Deserialize<'_>` is not implemented for `[u8; 33]`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for types from other crates check whether the crate offers a `serde` feature flag","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\nand 26 others","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `next_element`","code":null,"level":"note","spans":[{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":63908,"byte_end":63920,"line_start":1769,"line_end":1769,"column_start":8,"column_end":20,"is_primary":false,"text":[{"text":" fn next_element(&mut self) -> Result, Self::Error>","highlight_start":8,"highlight_end":20}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":63990,"byte_end":64006,"line_start":1771,"line_end":1771,"column_start":12,"column_end":28,"is_primary":true,"text":[{"text":" T: Deserialize<'de>,","highlight_start":12,"highlight_end":28}],"label":"required by this bound in `SeqAccess::next_element`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `[u8; 33]: serde::Deserialize<'de>` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:317:21\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m 317\u001b[0m \u001b[1m\u001b[94m|\u001b[0m public_key: [u8; 33],\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^\u001b[0m \u001b[1m\u001b[91mthe trait `Deserialize<'_>` is not implemented for `[u8; 33]`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for types from other crates check whether the crate offers a `serde` feature flag\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\n and 26 others\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `next_element`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1771:12\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1769\u001b[0m \u001b[1m\u001b[94m|\u001b[0m fn next_element(&mut self) -> Result, Self::Error>\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[94m1770\u001b[0m \u001b[1m\u001b[94m|\u001b[0m where\n\u001b[1m\u001b[94m1771\u001b[0m \u001b[1m\u001b[94m|\u001b[0m T: Deserialize<'de>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `SeqAccess::next_element`\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"the trait bound `[u8; 33]: serde::Deserialize<'de>` 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":"src/ergo_bridge.rs","byte_start":9914,"byte_end":9922,"line_start":317,"line_end":317,"column_start":21,"column_end":29,"is_primary":true,"text":[{"text":" public_key: [u8; 33],","highlight_start":21,"highlight_end":29}],"label":"the trait `Deserialize<'_>` is not implemented for `[u8; 33]`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for types from other crates check whether the crate offers a `serde` feature flag","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\nand 26 others","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `next_value`","code":null,"level":"note","spans":[{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":68496,"byte_end":68506,"line_start":1914,"line_end":1914,"column_start":8,"column_end":18,"is_primary":false,"text":[{"text":" fn next_value(&mut self) -> Result","highlight_start":8,"highlight_end":18}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":68568,"byte_end":68584,"line_start":1916,"line_end":1916,"column_start":12,"column_end":28,"is_primary":true,"text":[{"text":" V: Deserialize<'de>,","highlight_start":12,"highlight_end":28}],"label":"required by this bound in `MapAccess::next_value`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `[u8; 33]: serde::Deserialize<'de>` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:317:21\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m 317\u001b[0m \u001b[1m\u001b[94m|\u001b[0m public_key: [u8; 33],\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^\u001b[0m \u001b[1m\u001b[91mthe trait `Deserialize<'_>` is not implemented for `[u8; 33]`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for types from other crates check whether the crate offers a `serde` feature flag\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\n and 26 others\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `next_value`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1916:12\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1914\u001b[0m \u001b[1m\u001b[94m|\u001b[0m fn next_value(&mut self) -> Result\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[94m1915\u001b[0m \u001b[1m\u001b[94m|\u001b[0m where\n\u001b[1m\u001b[94m1916\u001b[0m \u001b[1m\u001b[94m|\u001b[0m V: Deserialize<'de>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `MapAccess::next_value`\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"the trait bound `[u8; 33]: serde::Deserialize<'de>` 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":"src/ergo_bridge.rs","byte_start":9752,"byte_end":9763,"line_start":312,"line_end":312,"column_start":35,"column_end":46,"is_primary":true,"text":[{"text":"#[derive(Debug, Clone, Serialize, Deserialize)]","highlight_start":35,"highlight_end":46}],"label":"the trait `Deserialize<'_>` is not implemented for `[u8; 33]`","suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"src/ergo_bridge.rs","byte_start":9752,"byte_end":9763,"line_start":312,"line_end":312,"column_start":35,"column_end":46,"is_primary":false,"text":[{"text":"#[derive(Debug, Clone, Serialize, Deserialize)]","highlight_start":35,"highlight_end":46}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},"macro_decl_name":"#[derive(Deserialize)]","def_site_span":{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/lib.rs","byte_start":3397,"byte_end":3457,"line_start":122,"line_end":122,"column_start":1,"column_end":61,"is_primary":false,"text":[{"text":"pub fn derive_deserialize(input: TokenStream) -> TokenStream {","highlight_start":1,"highlight_end":61}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}}],"children":[{"message":"for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for types from other crates check whether the crate offers a `serde` feature flag","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\nand 26 others","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `core_types::_::_serde::__private228::de::missing_field`","code":null,"level":"note","spans":[{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/private/de.rs","byte_start":837,"byte_end":850,"line_start":24,"line_end":24,"column_start":8,"column_end":21,"is_primary":false,"text":[{"text":"pub fn missing_field<'de, V, E>(field: &'static str) -> Result","highlight_start":8,"highlight_end":21}],"label":"required by a bound in this function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/private/de.rs","byte_start":912,"byte_end":928,"line_start":26,"line_end":26,"column_start":8,"column_end":24,"is_primary":true,"text":[{"text":" V: Deserialize<'de>,","highlight_start":8,"highlight_end":24}],"label":"required by this bound in `missing_field`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `[u8; 33]: serde::Deserialize<'de>` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:312:35\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m312\u001b[0m \u001b[1m\u001b[94m|\u001b[0m #[derive(Debug, Clone, Serialize, Deserialize)]\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91mthe trait `Deserialize<'_>` is not implemented for `[u8; 33]`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for types from other crates check whether the crate offers a `serde` feature flag\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\n and 26 others\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `core_types::_::_serde::__private228::de::missing_field`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/private/de.rs:26:8\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m 24\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub fn missing_field<'de, V, E>(field: &'static str) -> Result\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m-------------\u001b[0m \u001b[1m\u001b[94mrequired by a bound in this function\u001b[0m\n\u001b[1m\u001b[94m 25\u001b[0m \u001b[1m\u001b[94m|\u001b[0m where\n\u001b[1m\u001b[94m 26\u001b[0m \u001b[1m\u001b[94m|\u001b[0m V: Deserialize<'de>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `missing_field`\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)\n\n"} +{"$message_type":"diagnostic","message":"the trait bound `[u8; 33]: serde::Deserialize<'de>` 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":"src/ergo_bridge.rs","byte_start":10038,"byte_end":10046,"line_start":322,"line_end":322,"column_start":12,"column_end":20,"is_primary":true,"text":[{"text":" g: [u8; 33],","highlight_start":12,"highlight_end":20}],"label":"the trait `Deserialize<'_>` is not implemented for `[u8; 33]`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for types from other crates check whether the crate offers a `serde` feature flag","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\nand 26 others","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `next_element`","code":null,"level":"note","spans":[{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":63908,"byte_end":63920,"line_start":1769,"line_end":1769,"column_start":8,"column_end":20,"is_primary":false,"text":[{"text":" fn next_element(&mut self) -> Result, Self::Error>","highlight_start":8,"highlight_end":20}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":63990,"byte_end":64006,"line_start":1771,"line_end":1771,"column_start":12,"column_end":28,"is_primary":true,"text":[{"text":" T: Deserialize<'de>,","highlight_start":12,"highlight_end":28}],"label":"required by this bound in `SeqAccess::next_element`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `[u8; 33]: serde::Deserialize<'de>` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:322:12\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m 322\u001b[0m \u001b[1m\u001b[94m|\u001b[0m g: [u8; 33],\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^\u001b[0m \u001b[1m\u001b[91mthe trait `Deserialize<'_>` is not implemented for `[u8; 33]`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for types from other crates check whether the crate offers a `serde` feature flag\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\n and 26 others\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `next_element`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1771:12\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1769\u001b[0m \u001b[1m\u001b[94m|\u001b[0m fn next_element(&mut self) -> Result, Self::Error>\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[94m1770\u001b[0m \u001b[1m\u001b[94m|\u001b[0m where\n\u001b[1m\u001b[94m1771\u001b[0m \u001b[1m\u001b[94m|\u001b[0m T: Deserialize<'de>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `SeqAccess::next_element`\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"the trait bound `[u8; 33]: serde::Deserialize<'de>` 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":"src/ergo_bridge.rs","byte_start":10085,"byte_end":10093,"line_start":324,"line_end":324,"column_start":12,"column_end":20,"is_primary":true,"text":[{"text":" h: [u8; 33],","highlight_start":12,"highlight_end":20}],"label":"the trait `Deserialize<'_>` is not implemented for `[u8; 33]`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for types from other crates check whether the crate offers a `serde` feature flag","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\nand 26 others","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `next_element`","code":null,"level":"note","spans":[{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":63908,"byte_end":63920,"line_start":1769,"line_end":1769,"column_start":8,"column_end":20,"is_primary":false,"text":[{"text":" fn next_element(&mut self) -> Result, Self::Error>","highlight_start":8,"highlight_end":20}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":63990,"byte_end":64006,"line_start":1771,"line_end":1771,"column_start":12,"column_end":28,"is_primary":true,"text":[{"text":" T: Deserialize<'de>,","highlight_start":12,"highlight_end":28}],"label":"required by this bound in `SeqAccess::next_element`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `[u8; 33]: serde::Deserialize<'de>` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:324:12\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m 324\u001b[0m \u001b[1m\u001b[94m|\u001b[0m h: [u8; 33],\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^\u001b[0m \u001b[1m\u001b[91mthe trait `Deserialize<'_>` is not implemented for `[u8; 33]`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for types from other crates check whether the crate offers a `serde` feature flag\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\n and 26 others\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `next_element`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1771:12\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1769\u001b[0m \u001b[1m\u001b[94m|\u001b[0m fn next_element(&mut self) -> Result, Self::Error>\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[94m1770\u001b[0m \u001b[1m\u001b[94m|\u001b[0m where\n\u001b[1m\u001b[94m1771\u001b[0m \u001b[1m\u001b[94m|\u001b[0m T: Deserialize<'de>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `SeqAccess::next_element`\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"the trait bound `[u8; 33]: serde::Deserialize<'de>` 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":"src/ergo_bridge.rs","byte_start":10128,"byte_end":10136,"line_start":326,"line_end":326,"column_start":12,"column_end":20,"is_primary":true,"text":[{"text":" u: [u8; 33],","highlight_start":12,"highlight_end":20}],"label":"the trait `Deserialize<'_>` is not implemented for `[u8; 33]`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for types from other crates check whether the crate offers a `serde` feature flag","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\nand 26 others","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `next_element`","code":null,"level":"note","spans":[{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":63908,"byte_end":63920,"line_start":1769,"line_end":1769,"column_start":8,"column_end":20,"is_primary":false,"text":[{"text":" fn next_element(&mut self) -> Result, Self::Error>","highlight_start":8,"highlight_end":20}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":63990,"byte_end":64006,"line_start":1771,"line_end":1771,"column_start":12,"column_end":28,"is_primary":true,"text":[{"text":" T: Deserialize<'de>,","highlight_start":12,"highlight_end":28}],"label":"required by this bound in `SeqAccess::next_element`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `[u8; 33]: serde::Deserialize<'de>` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:326:12\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m 326\u001b[0m \u001b[1m\u001b[94m|\u001b[0m u: [u8; 33],\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^\u001b[0m \u001b[1m\u001b[91mthe trait `Deserialize<'_>` is not implemented for `[u8; 33]`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for types from other crates check whether the crate offers a `serde` feature flag\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\n and 26 others\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `next_element`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1771:12\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1769\u001b[0m \u001b[1m\u001b[94m|\u001b[0m fn next_element(&mut self) -> Result, Self::Error>\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[94m1770\u001b[0m \u001b[1m\u001b[94m|\u001b[0m where\n\u001b[1m\u001b[94m1771\u001b[0m \u001b[1m\u001b[94m|\u001b[0m T: Deserialize<'de>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `SeqAccess::next_element`\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"the trait bound `[u8; 33]: serde::Deserialize<'de>` 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":"src/ergo_bridge.rs","byte_start":10171,"byte_end":10179,"line_start":328,"line_end":328,"column_start":12,"column_end":20,"is_primary":true,"text":[{"text":" v: [u8; 33],","highlight_start":12,"highlight_end":20}],"label":"the trait `Deserialize<'_>` is not implemented for `[u8; 33]`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for types from other crates check whether the crate offers a `serde` feature flag","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\nand 26 others","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `next_element`","code":null,"level":"note","spans":[{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":63908,"byte_end":63920,"line_start":1769,"line_end":1769,"column_start":8,"column_end":20,"is_primary":false,"text":[{"text":" fn next_element(&mut self) -> Result, Self::Error>","highlight_start":8,"highlight_end":20}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":63990,"byte_end":64006,"line_start":1771,"line_end":1771,"column_start":12,"column_end":28,"is_primary":true,"text":[{"text":" T: Deserialize<'de>,","highlight_start":12,"highlight_end":28}],"label":"required by this bound in `SeqAccess::next_element`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `[u8; 33]: serde::Deserialize<'de>` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:328:12\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m 328\u001b[0m \u001b[1m\u001b[94m|\u001b[0m v: [u8; 33],\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^\u001b[0m \u001b[1m\u001b[91mthe trait `Deserialize<'_>` is not implemented for `[u8; 33]`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for types from other crates check whether the crate offers a `serde` feature flag\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\n and 26 others\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `next_element`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1771:12\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1769\u001b[0m \u001b[1m\u001b[94m|\u001b[0m fn next_element(&mut self) -> Result, Self::Error>\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[94m1770\u001b[0m \u001b[1m\u001b[94m|\u001b[0m where\n\u001b[1m\u001b[94m1771\u001b[0m \u001b[1m\u001b[94m|\u001b[0m T: Deserialize<'de>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `SeqAccess::next_element`\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"the trait bound `[u8; 33]: serde::Deserialize<'de>` 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":"src/ergo_bridge.rs","byte_start":10038,"byte_end":10046,"line_start":322,"line_end":322,"column_start":12,"column_end":20,"is_primary":true,"text":[{"text":" g: [u8; 33],","highlight_start":12,"highlight_end":20}],"label":"the trait `Deserialize<'_>` is not implemented for `[u8; 33]`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for types from other crates check whether the crate offers a `serde` feature flag","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\nand 26 others","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `next_value`","code":null,"level":"note","spans":[{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":68496,"byte_end":68506,"line_start":1914,"line_end":1914,"column_start":8,"column_end":18,"is_primary":false,"text":[{"text":" fn next_value(&mut self) -> Result","highlight_start":8,"highlight_end":18}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":68568,"byte_end":68584,"line_start":1916,"line_end":1916,"column_start":12,"column_end":28,"is_primary":true,"text":[{"text":" V: Deserialize<'de>,","highlight_start":12,"highlight_end":28}],"label":"required by this bound in `MapAccess::next_value`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `[u8; 33]: serde::Deserialize<'de>` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:322:12\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m 322\u001b[0m \u001b[1m\u001b[94m|\u001b[0m g: [u8; 33],\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^\u001b[0m \u001b[1m\u001b[91mthe trait `Deserialize<'_>` is not implemented for `[u8; 33]`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for types from other crates check whether the crate offers a `serde` feature flag\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\n and 26 others\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `next_value`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1916:12\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1914\u001b[0m \u001b[1m\u001b[94m|\u001b[0m fn next_value(&mut self) -> Result\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[94m1915\u001b[0m \u001b[1m\u001b[94m|\u001b[0m where\n\u001b[1m\u001b[94m1916\u001b[0m \u001b[1m\u001b[94m|\u001b[0m V: Deserialize<'de>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `MapAccess::next_value`\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"the trait bound `[u8; 33]: serde::Deserialize<'de>` 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":"src/ergo_bridge.rs","byte_start":10085,"byte_end":10093,"line_start":324,"line_end":324,"column_start":12,"column_end":20,"is_primary":true,"text":[{"text":" h: [u8; 33],","highlight_start":12,"highlight_end":20}],"label":"the trait `Deserialize<'_>` is not implemented for `[u8; 33]`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for types from other crates check whether the crate offers a `serde` feature flag","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\nand 26 others","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `next_value`","code":null,"level":"note","spans":[{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":68496,"byte_end":68506,"line_start":1914,"line_end":1914,"column_start":8,"column_end":18,"is_primary":false,"text":[{"text":" fn next_value(&mut self) -> Result","highlight_start":8,"highlight_end":18}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":68568,"byte_end":68584,"line_start":1916,"line_end":1916,"column_start":12,"column_end":28,"is_primary":true,"text":[{"text":" V: Deserialize<'de>,","highlight_start":12,"highlight_end":28}],"label":"required by this bound in `MapAccess::next_value`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `[u8; 33]: serde::Deserialize<'de>` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:324:12\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m 324\u001b[0m \u001b[1m\u001b[94m|\u001b[0m h: [u8; 33],\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^\u001b[0m \u001b[1m\u001b[91mthe trait `Deserialize<'_>` is not implemented for `[u8; 33]`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for types from other crates check whether the crate offers a `serde` feature flag\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\n and 26 others\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `next_value`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1916:12\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1914\u001b[0m \u001b[1m\u001b[94m|\u001b[0m fn next_value(&mut self) -> Result\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[94m1915\u001b[0m \u001b[1m\u001b[94m|\u001b[0m where\n\u001b[1m\u001b[94m1916\u001b[0m \u001b[1m\u001b[94m|\u001b[0m V: Deserialize<'de>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `MapAccess::next_value`\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"the trait bound `[u8; 33]: serde::Deserialize<'de>` 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":"src/ergo_bridge.rs","byte_start":10128,"byte_end":10136,"line_start":326,"line_end":326,"column_start":12,"column_end":20,"is_primary":true,"text":[{"text":" u: [u8; 33],","highlight_start":12,"highlight_end":20}],"label":"the trait `Deserialize<'_>` is not implemented for `[u8; 33]`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for types from other crates check whether the crate offers a `serde` feature flag","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\nand 26 others","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `next_value`","code":null,"level":"note","spans":[{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":68496,"byte_end":68506,"line_start":1914,"line_end":1914,"column_start":8,"column_end":18,"is_primary":false,"text":[{"text":" fn next_value(&mut self) -> Result","highlight_start":8,"highlight_end":18}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":68568,"byte_end":68584,"line_start":1916,"line_end":1916,"column_start":12,"column_end":28,"is_primary":true,"text":[{"text":" V: Deserialize<'de>,","highlight_start":12,"highlight_end":28}],"label":"required by this bound in `MapAccess::next_value`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `[u8; 33]: serde::Deserialize<'de>` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:326:12\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m 326\u001b[0m \u001b[1m\u001b[94m|\u001b[0m u: [u8; 33],\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^\u001b[0m \u001b[1m\u001b[91mthe trait `Deserialize<'_>` is not implemented for `[u8; 33]`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for types from other crates check whether the crate offers a `serde` feature flag\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\n and 26 others\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `next_value`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1916:12\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1914\u001b[0m \u001b[1m\u001b[94m|\u001b[0m fn next_value(&mut self) -> Result\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[94m1915\u001b[0m \u001b[1m\u001b[94m|\u001b[0m where\n\u001b[1m\u001b[94m1916\u001b[0m \u001b[1m\u001b[94m|\u001b[0m V: Deserialize<'de>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `MapAccess::next_value`\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"the trait bound `[u8; 33]: serde::Deserialize<'de>` 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":"src/ergo_bridge.rs","byte_start":10171,"byte_end":10179,"line_start":328,"line_end":328,"column_start":12,"column_end":20,"is_primary":true,"text":[{"text":" v: [u8; 33],","highlight_start":12,"highlight_end":20}],"label":"the trait `Deserialize<'_>` is not implemented for `[u8; 33]`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for types from other crates check whether the crate offers a `serde` feature flag","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\nand 26 others","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `next_value`","code":null,"level":"note","spans":[{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":68496,"byte_end":68506,"line_start":1914,"line_end":1914,"column_start":8,"column_end":18,"is_primary":false,"text":[{"text":" fn next_value(&mut self) -> Result","highlight_start":8,"highlight_end":18}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs","byte_start":68568,"byte_end":68584,"line_start":1916,"line_end":1916,"column_start":12,"column_end":28,"is_primary":true,"text":[{"text":" V: Deserialize<'de>,","highlight_start":12,"highlight_end":28}],"label":"required by this bound in `MapAccess::next_value`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `[u8; 33]: serde::Deserialize<'de>` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:328:12\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m 328\u001b[0m \u001b[1m\u001b[94m|\u001b[0m v: [u8; 33],\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^\u001b[0m \u001b[1m\u001b[91mthe trait `Deserialize<'_>` is not implemented for `[u8; 33]`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for types from other crates check whether the crate offers a `serde` feature flag\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\n and 26 others\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `next_value`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1916:12\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1914\u001b[0m \u001b[1m\u001b[94m|\u001b[0m fn next_value(&mut self) -> Result\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[94m1915\u001b[0m \u001b[1m\u001b[94m|\u001b[0m where\n\u001b[1m\u001b[94m1916\u001b[0m \u001b[1m\u001b[94m|\u001b[0m V: Deserialize<'de>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `MapAccess::next_value`\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"the trait bound `[u8; 33]: serde::Deserialize<'de>` 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":"src/ergo_bridge.rs","byte_start":9752,"byte_end":9763,"line_start":312,"line_end":312,"column_start":35,"column_end":46,"is_primary":true,"text":[{"text":"#[derive(Debug, Clone, Serialize, Deserialize)]","highlight_start":35,"highlight_end":46}],"label":"the trait `Deserialize<'_>` is not implemented for `[u8; 33]`","suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"src/ergo_bridge.rs","byte_start":9752,"byte_end":9763,"line_start":312,"line_end":312,"column_start":35,"column_end":46,"is_primary":false,"text":[{"text":"#[derive(Debug, Clone, Serialize, Deserialize)]","highlight_start":35,"highlight_end":46}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},"macro_decl_name":"#[derive(Deserialize)]","def_site_span":{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/lib.rs","byte_start":3397,"byte_end":3457,"line_start":122,"line_end":122,"column_start":1,"column_end":61,"is_primary":false,"text":[{"text":"pub fn derive_deserialize(input: TokenStream) -> TokenStream {","highlight_start":1,"highlight_end":61}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}}],"children":[{"message":"for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for types from other crates check whether the crate offers a `serde` feature flag","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\nand 26 others","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `core_types::_::_serde::__private228::de::missing_field`","code":null,"level":"note","spans":[{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/private/de.rs","byte_start":837,"byte_end":850,"line_start":24,"line_end":24,"column_start":8,"column_end":21,"is_primary":false,"text":[{"text":"pub fn missing_field<'de, V, E>(field: &'static str) -> Result","highlight_start":8,"highlight_end":21}],"label":"required by a bound in this function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/private/de.rs","byte_start":912,"byte_end":928,"line_start":26,"line_end":26,"column_start":8,"column_end":24,"is_primary":true,"text":[{"text":" V: Deserialize<'de>,","highlight_start":8,"highlight_end":24}],"label":"required by this bound in `missing_field`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `[u8; 33]: serde::Deserialize<'de>` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:312:35\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m312\u001b[0m \u001b[1m\u001b[94m|\u001b[0m #[derive(Debug, Clone, Serialize, Deserialize)]\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91mthe trait `Deserialize<'_>` is not implemented for `[u8; 33]`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for local types consider adding `#[derive(serde::Deserialize)]` to your `[u8; 33]` type\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: for types from other crates check whether the crate offers a `serde` feature flag\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: the following other types implement trait `Deserialize<'de>`:\n &[u8]\n [T; 0]\n [T; 1]\n [T; 2]\n [T; 3]\n [T; 4]\n [T; 5]\n [T; 6]\n and 26 others\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `core_types::_::_serde::__private228::de::missing_field`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/private/de.rs:26:8\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m 24\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub fn missing_field<'de, V, E>(field: &'static str) -> Result\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m-------------\u001b[0m \u001b[1m\u001b[94mrequired by a bound in this function\u001b[0m\n\u001b[1m\u001b[94m 25\u001b[0m \u001b[1m\u001b[94m|\u001b[0m where\n\u001b[1m\u001b[94m 26\u001b[0m \u001b[1m\u001b[94m|\u001b[0m V: Deserialize<'de>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `missing_field`\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)\n\n"} +{"$message_type":"diagnostic","message":"no method named `to_rtc` found for type `u64` in the current scope","code":{"code":"E0599","explanation":"This error occurs when a method is used on a type which doesn't implement it:\n\nErroneous code example:\n\n```compile_fail,E0599\nstruct Mouth;\n\nlet x = Mouth;\nx.chocolate(); // error: no method named `chocolate` found for type `Mouth`\n // in the current scope\n```\n\nIn this case, you need to implement the `chocolate` method to fix the error:\n\n```\nstruct Mouth;\n\nimpl Mouth {\n fn chocolate(&self) { // We implement the `chocolate` method here.\n println!(\"Hmmm! I love chocolate!\");\n }\n}\n\nlet x = Mouth;\nx.chocolate(); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/ergo_bridge.rs","byte_start":15639,"byte_end":15645,"line_start":501,"line_end":501,"column_start":32,"column_end":38,"is_primary":true,"text":[{"text":" value: self.reward.to_rtc() as u64 * 1_000_000_000, // nanoRTC","highlight_start":32,"highlight_end":38}],"label":"method not found in `u64`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0599]\u001b[0m\u001b[1m: no method named `to_rtc` found for type `u64` in the current scope\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:501:32\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m501\u001b[0m \u001b[1m\u001b[94m|\u001b[0m value: self.reward.to_rtc() as u64 * 1_000_000_000, // nanoRTC\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^\u001b[0m \u001b[1m\u001b[91mmethod not found in `u64`\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"no field `antiquity_score` on type `&BlockMiner`","code":{"code":"E0609","explanation":"Attempted to access a nonexistent field in a struct.\n\nErroneous code example:\n\n```compile_fail,E0609\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.foo); // error: no field `foo` on type `StructWithFields`\n```\n\nTo fix this error, check that you didn't misspell the field's name or that the\nfield actually exists. Example:\n\n```\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.x); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/ergo_bridge.rs","byte_start":15976,"byte_end":15991,"line_start":507,"line_end":507,"column_start":73,"column_end":88,"is_primary":true,"text":[{"text":" regs.insert(\"R4\".to_string(), RegisterValue::Long((self.antiquity_score * 100.0) as i64));","highlight_start":73,"highlight_end":88}],"label":"unknown field","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"available fields are: `wallet`, `hardware`, `multiplier`, `reward`","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0609]\u001b[0m\u001b[1m: no field `antiquity_score` on type `&BlockMiner`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:507:73\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m507\u001b[0m \u001b[1m\u001b[94m|\u001b[0m regs.insert(\"R4\".to_string(), RegisterValue::Long((self.antiquity_score * 100.0) as i64));\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91munknown field\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: available fields are: `wallet`, `hardware`, `multiplier`, `reward`\n\n"} +{"$message_type":"diagnostic","message":"the trait bound `BlockHash: AsRef<[u8]>` 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":"src/ergo_bridge.rs","byte_start":16537,"byte_end":16547,"line_start":523,"line_end":523,"column_start":35,"column_end":45,"is_primary":true,"text":[{"text":" hex::decode_to_slice(&block.hash, &mut id).ok();","highlight_start":35,"highlight_end":45}],"label":"unsatisfied trait bound","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/ergo_bridge.rs","byte_start":16515,"byte_end":16535,"line_start":523,"line_end":523,"column_start":13,"column_end":33,"is_primary":false,"text":[{"text":" hex::decode_to_slice(&block.hash, &mut id).ok();","highlight_start":13,"highlight_end":33}],"label":"required by a bound introduced by this call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the trait `AsRef<[u8]>` is not implemented for `BlockHash`","code":null,"level":"help","spans":[{"file_name":"src/core_types.rs","byte_start":3458,"byte_end":3478,"line_start":108,"line_end":108,"column_start":1,"column_end":21,"is_primary":true,"text":[{"text":"pub struct BlockHash(pub [u8; 32]);","highlight_start":1,"highlight_end":21}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"required for `&BlockHash` to implement `AsRef<[u8]>`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `decode_to_slice`","code":null,"level":"note","spans":[{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hex-0.4.3/src/lib.rs","byte_start":9470,"byte_end":9481,"line_start":312,"line_end":312,"column_start":27,"column_end":38,"is_primary":true,"text":[{"text":"pub fn decode_to_slice>(data: T, out: &mut [u8]) -> Result<(), FromHexError> {","highlight_start":27,"highlight_end":38}],"label":"required by this bound in `decode_to_slice`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `BlockHash: AsRef<[u8]>` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:523:35\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m523\u001b[0m \u001b[1m\u001b[94m|\u001b[0m hex::decode_to_slice(&block.hash, &mut id).ok();\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[96mhelp\u001b[0m: the trait `AsRef<[u8]>` is not implemented for `BlockHash`\n \u001b[1m\u001b[94m--> \u001b[0msrc/core_types.rs:108:1\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m108\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub struct BlockHash(pub [u8; 32]);\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[96m^^^^^^^^^^^^^^^^^^^^\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: required for `&BlockHash` to implement `AsRef<[u8]>`\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `decode_to_slice`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hex-0.4.3/src/lib.rs:312:27\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m312\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub fn decode_to_slice>(data: T, out: &mut [u8]) -> Result<(), FromHexError> {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `decode_to_slice`\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"the trait bound `BlockHash: AsRef<[u8]>` 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":"src/ergo_bridge.rs","byte_start":16686,"byte_end":16705,"line_start":528,"line_end":528,"column_start":35,"column_end":54,"is_primary":true,"text":[{"text":" hex::decode_to_slice(&block.previous_hash, &mut id).ok();","highlight_start":35,"highlight_end":54}],"label":"unsatisfied trait bound","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/ergo_bridge.rs","byte_start":16664,"byte_end":16684,"line_start":528,"line_end":528,"column_start":13,"column_end":33,"is_primary":false,"text":[{"text":" hex::decode_to_slice(&block.previous_hash, &mut id).ok();","highlight_start":13,"highlight_end":33}],"label":"required by a bound introduced by this call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the trait `AsRef<[u8]>` is not implemented for `BlockHash`","code":null,"level":"help","spans":[{"file_name":"src/core_types.rs","byte_start":3458,"byte_end":3478,"line_start":108,"line_end":108,"column_start":1,"column_end":21,"is_primary":true,"text":[{"text":"pub struct BlockHash(pub [u8; 32]);","highlight_start":1,"highlight_end":21}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"required for `&BlockHash` to implement `AsRef<[u8]>`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `decode_to_slice`","code":null,"level":"note","spans":[{"file_name":"/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hex-0.4.3/src/lib.rs","byte_start":9470,"byte_end":9481,"line_start":312,"line_end":312,"column_start":27,"column_end":38,"is_primary":true,"text":[{"text":"pub fn decode_to_slice>(data: T, out: &mut [u8]) -> Result<(), FromHexError> {","highlight_start":27,"highlight_end":38}],"label":"required by this bound in `decode_to_slice`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: the trait bound `BlockHash: AsRef<[u8]>` is not satisfied\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:528:35\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m528\u001b[0m \u001b[1m\u001b[94m|\u001b[0m hex::decode_to_slice(&block.previous_hash, &mut id).ok();\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[96mhelp\u001b[0m: the trait `AsRef<[u8]>` is not implemented for `BlockHash`\n \u001b[1m\u001b[94m--> \u001b[0msrc/core_types.rs:108:1\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m108\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub struct BlockHash(pub [u8; 32]);\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[96m^^^^^^^^^^^^^^^^^^^^\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: required for `&BlockHash` to implement `AsRef<[u8]>`\n\u001b[1m\u001b[92mnote\u001b[0m: required by a bound in `decode_to_slice`\n \u001b[1m\u001b[94m--> \u001b[0m/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hex-0.4.3/src/lib.rs:312:27\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m312\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub fn decode_to_slice>(data: T, out: &mut [u8]) -> Result<(), FromHexError> {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[92mrequired by this bound in `decode_to_slice`\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"no field `antiquity_score` on type `&BlockMiner`","code":{"code":"E0609","explanation":"Attempted to access a nonexistent field in a struct.\n\nErroneous code example:\n\n```compile_fail,E0609\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.foo); // error: no field `foo` on type `StructWithFields`\n```\n\nTo fix this error, check that you didn't misspell the field's name or that the\nfield actually exists. Example:\n\n```\nstruct StructWithFields {\n x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.x); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/ergo_bridge.rs","byte_start":16849,"byte_end":16864,"line_start":532,"line_end":532,"column_start":62,"column_end":77,"is_primary":true,"text":[{"text":" total_antiquity_score: block.miners.iter().map(|m| m.antiquity_score).sum(),","highlight_start":62,"highlight_end":77}],"label":"unknown field","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"available fields are: `wallet`, `hardware`, `multiplier`, `reward`","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0609]\u001b[0m\u001b[1m: no field `antiquity_score` on type `&BlockMiner`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ergo_bridge.rs:532:62\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m532\u001b[0m \u001b[1m\u001b[94m|\u001b[0m total_antiquity_score: block.miners.iter().map(|m| m.antiquity_score).sum(),\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91munknown field\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: available fields are: `wallet`, `hardware`, `multiplier`, `reward`\n\n"} +{"$message_type":"diagnostic","message":"borrow of moved value: `proof.wallet`","code":{"code":"E0382","explanation":"A variable was used after its contents have been moved elsewhere.\n\nErroneous code example:\n\n```compile_fail,E0382\nstruct MyStruct { s: u32 }\n\nfn main() {\n let mut x = MyStruct{ s: 5u32 };\n let y = x;\n x.s = 6;\n println!(\"{}\", x.s);\n}\n```\n\nSince `MyStruct` is a type that is not marked `Copy`, the data gets moved out\nof `x` when we set `y`. This is fundamental to Rust's ownership system: outside\nof workarounds like `Rc`, a value cannot be owned by more than one variable.\n\nSometimes we don't need to move the value. Using a reference, we can let another\nfunction borrow the value without changing its ownership. In the example below,\nwe don't actually have to move our string to `calculate_length`, we can give it\na reference to it with `&` instead.\n\n```\nfn main() {\n let s1 = String::from(\"hello\");\n\n let len = calculate_length(&s1);\n\n println!(\"The length of '{}' is {}.\", s1, len);\n}\n\nfn calculate_length(s: &String) -> usize {\n s.len()\n}\n```\n\nA mutable reference can be created with `&mut`.\n\nSometimes we don't want a reference, but a duplicate. All types marked `Clone`\ncan be duplicated by calling `.clone()`. Subsequent changes to a clone do not\naffect the original variable.\n\nMost types in the standard library are marked `Clone`. The example below\ndemonstrates using `clone()` on a string. `s1` is first set to \"many\", and then\ncopied to `s2`. Then the first character of `s1` is removed, without affecting\n`s2`. \"any many\" is printed to the console.\n\n```\nfn main() {\n let mut s1 = String::from(\"many\");\n let s2 = s1.clone();\n s1.remove(0);\n println!(\"{} {}\", s1, s2);\n}\n```\n\nIf we control the definition of a type, we can implement `Clone` on it ourselves\nwith `#[derive(Clone)]`.\n\nSome types have no ownership semantics at all and are trivial to duplicate. An\nexample is `i32` and the other number types. We don't have to call `.clone()` to\nclone them, because they are marked `Copy` in addition to `Clone`. Implicit\ncloning is more convenient in this case. We can mark our own types `Copy` if\nall their members also are marked `Copy`.\n\nIn the example below, we implement a `Point` type. Because it only stores two\nintegers, we opt-out of ownership semantics with `Copy`. Then we can\n`let p2 = p1` without `p1` being moved.\n\n```\n#[derive(Copy, Clone)]\nstruct Point { x: i32, y: i32 }\n\nfn main() {\n let mut p1 = Point{ x: -1, y: 2 };\n let p2 = p1;\n p1.x = 1;\n println!(\"p1: {}, {}\", p1.x, p1.y);\n println!(\"p2: {}, {}\", p2.x, p2.y);\n}\n```\n\nAlternatively, if we don't control the struct's definition, or mutable shared\nownership is truly required, we can use `Rc` and `RefCell`:\n\n```\nuse std::cell::RefCell;\nuse std::rc::Rc;\n\nstruct MyStruct { s: u32 }\n\nfn main() {\n let mut x = Rc::new(RefCell::new(MyStruct{ s: 5u32 }));\n let y = x.clone();\n x.borrow_mut().s = 6;\n println!(\"{}\", x.borrow().s);\n}\n```\n\nWith this approach, x and y share ownership of the data via the `Rc` (reference\ncount type). `RefCell` essentially performs runtime borrow checking: ensuring\nthat at most one writer or multiple readers can access the data at any one time.\n\nIf you wish to learn more about ownership in Rust, start with the\n[Understanding Ownership][understanding-ownership] chapter in the Book.\n\n[understanding-ownership]: https://doc.rust-lang.org/book/ch04-00-understanding-ownership.html\n"},"level":"error","spans":[{"file_name":"src/proof_of_antiquity.rs","byte_start":5171,"byte_end":5183,"line_start":157,"line_end":157,"column_start":21,"column_end":33,"is_primary":false,"text":[{"text":" wallet: proof.wallet,","highlight_start":21,"highlight_end":33}],"label":"value moved here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/proof_of_antiquity.rs","byte_start":5482,"byte_end":5494,"line_start":165,"line_end":165,"column_start":45,"column_end":57,"is_primary":true,"text":[{"text":" self.known_hardware.insert(hw_hash, proof.wallet.clone());","highlight_start":45,"highlight_end":57}],"label":"value borrowed here after move","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"move occurs because `proof.wallet` has type `WalletAddress`, which does not implement the `Copy` trait","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0382]\u001b[0m\u001b[1m: borrow of moved value: `proof.wallet`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/proof_of_antiquity.rs:165:45\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m157\u001b[0m \u001b[1m\u001b[94m|\u001b[0m wallet: proof.wallet,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m------------\u001b[0m \u001b[1m\u001b[94mvalue moved here\u001b[0m\n\u001b[1m\u001b[94m...\u001b[0m\n\u001b[1m\u001b[94m165\u001b[0m \u001b[1m\u001b[94m|\u001b[0m self.known_hardware.insert(hw_hash, proof.wallet.clone());\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91mvalue borrowed here after move\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: move occurs because `proof.wallet` has type `WalletAddress`, which does not implement the `Copy` trait\n\n"} +{"$message_type":"diagnostic","message":"non-exhaustive patterns: `Err(MintError::InvalidCriteria(_))` not covered","code":{"code":"E0004","explanation":"This error indicates that the compiler cannot guarantee a matching pattern for\none or more possible inputs to a match expression. Guaranteed matches are\nrequired in order to assign values to match expressions, or alternatively,\ndetermine the flow of execution.\n\nErroneous code example:\n\n```compile_fail,E0004\nenum Terminator {\n HastaLaVistaBaby,\n TalkToMyHand,\n}\n\nlet x = Terminator::HastaLaVistaBaby;\n\nmatch x { // error: non-exhaustive patterns: `HastaLaVistaBaby` not covered\n Terminator::TalkToMyHand => {}\n}\n```\n\nIf you encounter this error you must alter your patterns so that every possible\nvalue of the input type is matched. For types with a small number of variants\n(like enums) you should probably cover all cases explicitly. Alternatively, the\nunderscore `_` wildcard pattern can be added after all other patterns to match\n\"anything else\". Example:\n\n```\nenum Terminator {\n HastaLaVistaBaby,\n TalkToMyHand,\n}\n\nlet x = Terminator::HastaLaVistaBaby;\n\nmatch x {\n Terminator::TalkToMyHand => {}\n Terminator::HastaLaVistaBaby => {}\n}\n\n// or:\n\nmatch x {\n Terminator::TalkToMyHand => {}\n _ => {}\n}\n```\n"},"level":"error","spans":[{"file_name":"src/nft_badges.rs","byte_start":19218,"byte_end":19285,"line_start":501,"line_end":501,"column_start":19,"column_end":86,"is_primary":true,"text":[{"text":" match self.mint_badge(badge_type, stats.wallet.clone(), block, timestamp) {","highlight_start":19,"highlight_end":86}],"label":"pattern `Err(MintError::InvalidCriteria(_))` not covered","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`Result` defined here","code":null,"level":"note","spans":[{"file_name":"/rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/result.rs","byte_start":21221,"byte_end":21242,"line_start":557,"line_end":557,"column_start":1,"column_end":22,"is_primary":true,"text":[],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/result.rs","byte_start":21514,"byte_end":21517,"line_start":566,"line_end":566,"column_start":5,"column_end":8,"is_primary":false,"text":[],"label":"not covered","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"the matched value is of type `Result`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown","code":null,"level":"help","spans":[{"file_name":"src/nft_badges.rs","byte_start":19399,"byte_end":19399,"line_start":503,"line_end":503,"column_start":61,"column_end":61,"is_primary":true,"text":[{"text":" Err(MintError::AlreadyMinted(_)) => continue, // Already has this badge","highlight_start":61,"highlight_end":61}],"label":null,"suggested_replacement":",\n Err(MintError::InvalidCriteria(_)) => todo!()","suggestion_applicability":"HasPlaceholders","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0004]\u001b[0m\u001b[1m: non-exhaustive patterns: `Err(MintError::InvalidCriteria(_))` not covered\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/nft_badges.rs:501:19\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m501\u001b[0m \u001b[1m\u001b[94m|\u001b[0m match self.mint_badge(badge_type, stats.wallet.clone(), block, timestamp) {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91mpattern `Err(MintError::InvalidCriteria(_))` not covered\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[92mnote\u001b[0m: `Result` defined here\n \u001b[1m\u001b[94m--> \u001b[0m/rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/result.rs:557:0\n \u001b[1m\u001b[94m::: \u001b[0m/rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/result.rs:566:4\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: not covered\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: the matched value is of type `Result`\n\u001b[1m\u001b[96mhelp\u001b[0m: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m503\u001b[0m \u001b[92m~ \u001b[0m Err(MintError::AlreadyMinted(_)) => continue\u001b[92m,\u001b[0m\n\u001b[1m\u001b[94m504\u001b[0m \u001b[92m~ Err(MintError::InvalidCriteria(_)) => todo!()\u001b[0m, // Already has this badge\n \u001b[1m\u001b[94m|\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"unused variable: `reason`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"src/network.rs","byte_start":13533,"byte_end":13539,"line_start":461,"line_end":461,"column_start":30,"column_end":36,"is_primary":true,"text":[{"text":" Message::Goodbye(reason) => {","highlight_start":30,"highlight_end":36}],"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":"src/network.rs","byte_start":13533,"byte_end":13539,"line_start":461,"line_end":461,"column_start":30,"column_end":36,"is_primary":true,"text":[{"text":" Message::Goodbye(reason) => {","highlight_start":30,"highlight_end":36}],"label":null,"suggested_replacement":"_reason","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused variable: `reason`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/network.rs:461:30\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m461\u001b[0m \u001b[1m\u001b[94m|\u001b[0m Message::Goodbye(reason) => {\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: `_reason`\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 46 previous errors; 8 warnings emitted","code":null,"level":"error","spans":[],"children":[],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: aborting due to 46 previous errors; 8 warnings emitted\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"Some errors have detailed explanations: E0004, E0277, E0308, E0382, E0583, E0599, E0609.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"\u001b[1mSome errors have detailed explanations: E0004, E0277, E0308, E0382, E0583, E0599, E0609.\u001b[0m\n"} +{"$message_type":"diagnostic","message":"For more information about an error, try `rustc --explain E0004`.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"\u001b[1mFor more information about an error, try `rustc --explain E0004`.\u001b[0m\n"} diff --git a/rips/target/debug/.fingerprint/serde-3367b05a0fd1c9a8/build-script-build-script-build b/rips/target/debug/.fingerprint/serde-3367b05a0fd1c9a8/build-script-build-script-build new file mode 100644 index 00000000..fc813076 --- /dev/null +++ b/rips/target/debug/.fingerprint/serde-3367b05a0fd1c9a8/build-script-build-script-build @@ -0,0 +1 @@ +9835b708b1fc0bdf \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde-3367b05a0fd1c9a8/build-script-build-script-build.json b/rips/target/debug/.fingerprint/serde-3367b05a0fd1c9a8/build-script-build-script-build.json new file mode 100644 index 00000000..dce46bf9 --- /dev/null +++ b/rips/target/debug/.fingerprint/serde-3367b05a0fd1c9a8/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"default\", \"derive\", \"serde_derive\", \"std\"]","declared_features":"[\"alloc\", \"default\", \"derive\", \"rc\", \"serde_derive\", \"std\", \"unstable\"]","target":5408242616063297496,"profile":3033921117576893,"path":16131496562245728808,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/serde-3367b05a0fd1c9a8/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde-3367b05a0fd1c9a8/dep-build-script-build-script-build b/rips/target/debug/.fingerprint/serde-3367b05a0fd1c9a8/dep-build-script-build-script-build new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/serde-3367b05a0fd1c9a8/dep-build-script-build-script-build differ diff --git a/rips/target/debug/.fingerprint/serde-3367b05a0fd1c9a8/invoked.timestamp b/rips/target/debug/.fingerprint/serde-3367b05a0fd1c9a8/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/serde-3367b05a0fd1c9a8/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde-351a032209beb343/dep-lib-serde b/rips/target/debug/.fingerprint/serde-351a032209beb343/dep-lib-serde new file mode 100644 index 00000000..cf3937ec Binary files /dev/null and b/rips/target/debug/.fingerprint/serde-351a032209beb343/dep-lib-serde differ diff --git a/rips/target/debug/.fingerprint/serde-351a032209beb343/invoked.timestamp b/rips/target/debug/.fingerprint/serde-351a032209beb343/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/serde-351a032209beb343/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde-351a032209beb343/lib-serde b/rips/target/debug/.fingerprint/serde-351a032209beb343/lib-serde new file mode 100644 index 00000000..ea341e59 --- /dev/null +++ b/rips/target/debug/.fingerprint/serde-351a032209beb343/lib-serde @@ -0,0 +1 @@ +d29e237134a97245 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde-351a032209beb343/lib-serde.json b/rips/target/debug/.fingerprint/serde-351a032209beb343/lib-serde.json new file mode 100644 index 00000000..d04f55b0 --- /dev/null +++ b/rips/target/debug/.fingerprint/serde-351a032209beb343/lib-serde.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"default\", \"derive\", \"serde_derive\", \"std\"]","declared_features":"[\"alloc\", \"default\", \"derive\", \"rc\", \"serde_derive\", \"std\", \"unstable\"]","target":11327258112168116673,"profile":8276155916380437441,"path":1386017986490635388,"deps":[[3051629642231505422,"serde_derive",false,15144589766939122208],[11899261697793765154,"serde_core",false,9069775074243320694],[13548984313718623784,"build_script_build",false,16163036565222773588]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/serde-351a032209beb343/dep-lib-serde","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde-f7820387e22cc7ff/run-build-script-build-script-build b/rips/target/debug/.fingerprint/serde-f7820387e22cc7ff/run-build-script-build-script-build new file mode 100644 index 00000000..7cbece42 --- /dev/null +++ b/rips/target/debug/.fingerprint/serde-f7820387e22cc7ff/run-build-script-build-script-build @@ -0,0 +1 @@ +54d3c0e11ea44ee0 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde-f7820387e22cc7ff/run-build-script-build-script-build.json b/rips/target/debug/.fingerprint/serde-f7820387e22cc7ff/run-build-script-build-script-build.json new file mode 100644 index 00000000..c2b533a3 --- /dev/null +++ b/rips/target/debug/.fingerprint/serde-f7820387e22cc7ff/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[13548984313718623784,"build_script_build",false,16072217532487382424]],"local":[{"RerunIfChanged":{"output":"debug/build/serde-f7820387e22cc7ff/output","paths":["build.rs"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde_core-0ccc1fe2c81d92cd/build-script-build-script-build b/rips/target/debug/.fingerprint/serde_core-0ccc1fe2c81d92cd/build-script-build-script-build new file mode 100644 index 00000000..e80e63cd --- /dev/null +++ b/rips/target/debug/.fingerprint/serde_core-0ccc1fe2c81d92cd/build-script-build-script-build @@ -0,0 +1 @@ +c35f3a2bcf55d7af \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde_core-0ccc1fe2c81d92cd/build-script-build-script-build.json b/rips/target/debug/.fingerprint/serde_core-0ccc1fe2c81d92cd/build-script-build-script-build.json new file mode 100644 index 00000000..affbd46b --- /dev/null +++ b/rips/target/debug/.fingerprint/serde_core-0ccc1fe2c81d92cd/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"result\", \"std\"]","declared_features":"[\"alloc\", \"default\", \"rc\", \"result\", \"std\", \"unstable\"]","target":5408242616063297496,"profile":3033921117576893,"path":1050870725766171750,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/serde_core-0ccc1fe2c81d92cd/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde_core-0ccc1fe2c81d92cd/dep-build-script-build-script-build b/rips/target/debug/.fingerprint/serde_core-0ccc1fe2c81d92cd/dep-build-script-build-script-build new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/serde_core-0ccc1fe2c81d92cd/dep-build-script-build-script-build differ diff --git a/rips/target/debug/.fingerprint/serde_core-0ccc1fe2c81d92cd/invoked.timestamp b/rips/target/debug/.fingerprint/serde_core-0ccc1fe2c81d92cd/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/serde_core-0ccc1fe2c81d92cd/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde_core-64579cb2fcb88754/dep-lib-serde_core b/rips/target/debug/.fingerprint/serde_core-64579cb2fcb88754/dep-lib-serde_core new file mode 100644 index 00000000..0367547d Binary files /dev/null and b/rips/target/debug/.fingerprint/serde_core-64579cb2fcb88754/dep-lib-serde_core differ diff --git a/rips/target/debug/.fingerprint/serde_core-64579cb2fcb88754/invoked.timestamp b/rips/target/debug/.fingerprint/serde_core-64579cb2fcb88754/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/serde_core-64579cb2fcb88754/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde_core-64579cb2fcb88754/lib-serde_core b/rips/target/debug/.fingerprint/serde_core-64579cb2fcb88754/lib-serde_core new file mode 100644 index 00000000..156a9de2 --- /dev/null +++ b/rips/target/debug/.fingerprint/serde_core-64579cb2fcb88754/lib-serde_core @@ -0,0 +1 @@ +761bf7546050de7d \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde_core-64579cb2fcb88754/lib-serde_core.json b/rips/target/debug/.fingerprint/serde_core-64579cb2fcb88754/lib-serde_core.json new file mode 100644 index 00000000..f4bfba9d --- /dev/null +++ b/rips/target/debug/.fingerprint/serde_core-64579cb2fcb88754/lib-serde_core.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"result\", \"std\"]","declared_features":"[\"alloc\", \"default\", \"rc\", \"result\", \"std\", \"unstable\"]","target":6810695588070812737,"profile":8276155916380437441,"path":4949136294769941818,"deps":[[11899261697793765154,"build_script_build",false,789678293461848039]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/serde_core-64579cb2fcb88754/dep-lib-serde_core","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde_core-9009d279787d5772/run-build-script-build-script-build b/rips/target/debug/.fingerprint/serde_core-9009d279787d5772/run-build-script-build-script-build new file mode 100644 index 00000000..b14c64c2 --- /dev/null +++ b/rips/target/debug/.fingerprint/serde_core-9009d279787d5772/run-build-script-build-script-build @@ -0,0 +1 @@ +e74fa1583980f50a \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde_core-9009d279787d5772/run-build-script-build-script-build.json b/rips/target/debug/.fingerprint/serde_core-9009d279787d5772/run-build-script-build-script-build.json new file mode 100644 index 00000000..7e93fec3 --- /dev/null +++ b/rips/target/debug/.fingerprint/serde_core-9009d279787d5772/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[11899261697793765154,"build_script_build",false,12670690424902016963]],"local":[{"RerunIfChanged":{"output":"debug/build/serde_core-9009d279787d5772/output","paths":["build.rs"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde_derive-068eb568cd5e4812/dep-lib-serde_derive b/rips/target/debug/.fingerprint/serde_derive-068eb568cd5e4812/dep-lib-serde_derive new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/serde_derive-068eb568cd5e4812/dep-lib-serde_derive differ diff --git a/rips/target/debug/.fingerprint/serde_derive-068eb568cd5e4812/invoked.timestamp b/rips/target/debug/.fingerprint/serde_derive-068eb568cd5e4812/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/serde_derive-068eb568cd5e4812/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde_derive-068eb568cd5e4812/lib-serde_derive b/rips/target/debug/.fingerprint/serde_derive-068eb568cd5e4812/lib-serde_derive new file mode 100644 index 00000000..3da98581 --- /dev/null +++ b/rips/target/debug/.fingerprint/serde_derive-068eb568cd5e4812/lib-serde_derive @@ -0,0 +1 @@ +201a6c4f27642cd2 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde_derive-068eb568cd5e4812/lib-serde_derive.json b/rips/target/debug/.fingerprint/serde_derive-068eb568cd5e4812/lib-serde_derive.json new file mode 100644 index 00000000..d0e7812f --- /dev/null +++ b/rips/target/debug/.fingerprint/serde_derive-068eb568cd5e4812/lib-serde_derive.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"default\"]","declared_features":"[\"default\", \"deserialize_in_place\"]","target":13076129734743110817,"profile":3033921117576893,"path":9193582629981183843,"deps":[[4289358735036141001,"proc_macro2",false,10386406744901031810],[10420560437213941093,"syn",false,8480793252534591750],[13111758008314797071,"quote",false,16879720831158927534]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/serde_derive-068eb568cd5e4812/dep-lib-serde_derive","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde_json-0e901609e2caeb56/build-script-build-script-build b/rips/target/debug/.fingerprint/serde_json-0e901609e2caeb56/build-script-build-script-build new file mode 100644 index 00000000..83bc0f78 --- /dev/null +++ b/rips/target/debug/.fingerprint/serde_json-0e901609e2caeb56/build-script-build-script-build @@ -0,0 +1 @@ +8bde3b5096b04a4e \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde_json-0e901609e2caeb56/build-script-build-script-build.json b/rips/target/debug/.fingerprint/serde_json-0e901609e2caeb56/build-script-build-script-build.json new file mode 100644 index 00000000..9ec6707d --- /dev/null +++ b/rips/target/debug/.fingerprint/serde_json-0e901609e2caeb56/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"default\", \"std\"]","declared_features":"[\"alloc\", \"arbitrary_precision\", \"default\", \"float_roundtrip\", \"indexmap\", \"preserve_order\", \"raw_value\", \"std\", \"unbounded_depth\"]","target":5408242616063297496,"profile":3033921117576893,"path":12175381954978946204,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/serde_json-0e901609e2caeb56/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde_json-0e901609e2caeb56/dep-build-script-build-script-build b/rips/target/debug/.fingerprint/serde_json-0e901609e2caeb56/dep-build-script-build-script-build new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/serde_json-0e901609e2caeb56/dep-build-script-build-script-build differ diff --git a/rips/target/debug/.fingerprint/serde_json-0e901609e2caeb56/invoked.timestamp b/rips/target/debug/.fingerprint/serde_json-0e901609e2caeb56/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/serde_json-0e901609e2caeb56/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde_json-7b5a2b821b819c72/run-build-script-build-script-build b/rips/target/debug/.fingerprint/serde_json-7b5a2b821b819c72/run-build-script-build-script-build new file mode 100644 index 00000000..078f59a7 --- /dev/null +++ b/rips/target/debug/.fingerprint/serde_json-7b5a2b821b819c72/run-build-script-build-script-build @@ -0,0 +1 @@ +7a6a00bcca7903e7 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde_json-7b5a2b821b819c72/run-build-script-build-script-build.json b/rips/target/debug/.fingerprint/serde_json-7b5a2b821b819c72/run-build-script-build-script-build.json new file mode 100644 index 00000000..fca89ce4 --- /dev/null +++ b/rips/target/debug/.fingerprint/serde_json-7b5a2b821b819c72/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[13795362694956882968,"build_script_build",false,5641515642872651403]],"local":[{"RerunIfChanged":{"output":"debug/build/serde_json-7b5a2b821b819c72/output","paths":["build.rs"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde_json-aa83de590248cba9/dep-lib-serde_json b/rips/target/debug/.fingerprint/serde_json-aa83de590248cba9/dep-lib-serde_json new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/serde_json-aa83de590248cba9/dep-lib-serde_json differ diff --git a/rips/target/debug/.fingerprint/serde_json-aa83de590248cba9/invoked.timestamp b/rips/target/debug/.fingerprint/serde_json-aa83de590248cba9/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/serde_json-aa83de590248cba9/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde_json-aa83de590248cba9/lib-serde_json b/rips/target/debug/.fingerprint/serde_json-aa83de590248cba9/lib-serde_json new file mode 100644 index 00000000..27cef614 --- /dev/null +++ b/rips/target/debug/.fingerprint/serde_json-aa83de590248cba9/lib-serde_json @@ -0,0 +1 @@ +74b884e017be270a \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/serde_json-aa83de590248cba9/lib-serde_json.json b/rips/target/debug/.fingerprint/serde_json-aa83de590248cba9/lib-serde_json.json new file mode 100644 index 00000000..61b6a747 --- /dev/null +++ b/rips/target/debug/.fingerprint/serde_json-aa83de590248cba9/lib-serde_json.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"default\", \"std\"]","declared_features":"[\"alloc\", \"arbitrary_precision\", \"default\", \"float_roundtrip\", \"indexmap\", \"preserve_order\", \"raw_value\", \"std\", \"unbounded_depth\"]","target":9592559880233824070,"profile":8276155916380437441,"path":12100370174704489058,"deps":[[1363051979936526615,"memchr",false,10772510739968638709],[9938278000850417404,"itoa",false,5471082079602432375],[11899261697793765154,"serde_core",false,9069775074243320694],[12347024475581975995,"zmij",false,8580746100934116385],[13795362694956882968,"build_script_build",false,16646282559335983738]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/serde_json-aa83de590248cba9/dep-lib-serde_json","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/sha2-6c3a832343f33522/dep-lib-sha2 b/rips/target/debug/.fingerprint/sha2-6c3a832343f33522/dep-lib-sha2 new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/sha2-6c3a832343f33522/dep-lib-sha2 differ diff --git a/rips/target/debug/.fingerprint/sha2-6c3a832343f33522/invoked.timestamp b/rips/target/debug/.fingerprint/sha2-6c3a832343f33522/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/sha2-6c3a832343f33522/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/sha2-6c3a832343f33522/lib-sha2 b/rips/target/debug/.fingerprint/sha2-6c3a832343f33522/lib-sha2 new file mode 100644 index 00000000..04bfd43e --- /dev/null +++ b/rips/target/debug/.fingerprint/sha2-6c3a832343f33522/lib-sha2 @@ -0,0 +1 @@ +60096e448787dc21 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/sha2-6c3a832343f33522/lib-sha2.json b/rips/target/debug/.fingerprint/sha2-6c3a832343f33522/lib-sha2.json new file mode 100644 index 00000000..b35b287f --- /dev/null +++ b/rips/target/debug/.fingerprint/sha2-6c3a832343f33522/lib-sha2.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"default\", \"std\"]","declared_features":"[\"asm\", \"asm-aarch64\", \"compress\", \"default\", \"force-soft\", \"force-soft-compact\", \"loongarch64_asm\", \"oid\", \"sha2-asm\", \"std\"]","target":9593554856174113207,"profile":8276155916380437441,"path":5135352970106505305,"deps":[[7667230146095136825,"cfg_if",false,2774926547442454627],[17475753849556516473,"digest",false,2017702643590840393],[17620084158052398167,"cpufeatures",false,14788880713542054925]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/sha2-6c3a832343f33522/dep-lib-sha2","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/syn-e1e7724cfa41f357/dep-lib-syn b/rips/target/debug/.fingerprint/syn-e1e7724cfa41f357/dep-lib-syn new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/syn-e1e7724cfa41f357/dep-lib-syn differ diff --git a/rips/target/debug/.fingerprint/syn-e1e7724cfa41f357/invoked.timestamp b/rips/target/debug/.fingerprint/syn-e1e7724cfa41f357/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/syn-e1e7724cfa41f357/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/syn-e1e7724cfa41f357/lib-syn b/rips/target/debug/.fingerprint/syn-e1e7724cfa41f357/lib-syn new file mode 100644 index 00000000..ce018aad --- /dev/null +++ b/rips/target/debug/.fingerprint/syn-e1e7724cfa41f357/lib-syn @@ -0,0 +1 @@ +06a1daae87d4b175 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/syn-e1e7724cfa41f357/lib-syn.json b/rips/target/debug/.fingerprint/syn-e1e7724cfa41f357/lib-syn.json new file mode 100644 index 00000000..ba251bda --- /dev/null +++ b/rips/target/debug/.fingerprint/syn-e1e7724cfa41f357/lib-syn.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"clone-impls\", \"derive\", \"parsing\", \"printing\", \"proc-macro\"]","declared_features":"[\"clone-impls\", \"default\", \"derive\", \"extra-traits\", \"fold\", \"full\", \"parsing\", \"printing\", \"proc-macro\", \"test\", \"visit\", \"visit-mut\"]","target":9442126953582868550,"profile":3033921117576893,"path":4654131076137986605,"deps":[[4289358735036141001,"proc_macro2",false,10386406744901031810],[8901712065508858692,"unicode_ident",false,10287155546703308581],[13111758008314797071,"quote",false,16879720831158927534]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/syn-e1e7724cfa41f357/dep-lib-syn","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/typenum-5ab41de9c8ed48a1/run-build-script-build-script-build b/rips/target/debug/.fingerprint/typenum-5ab41de9c8ed48a1/run-build-script-build-script-build new file mode 100644 index 00000000..b1453e85 --- /dev/null +++ b/rips/target/debug/.fingerprint/typenum-5ab41de9c8ed48a1/run-build-script-build-script-build @@ -0,0 +1 @@ +babfc9b579cecffb \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/typenum-5ab41de9c8ed48a1/run-build-script-build-script-build.json b/rips/target/debug/.fingerprint/typenum-5ab41de9c8ed48a1/run-build-script-build-script-build.json new file mode 100644 index 00000000..622fdde3 --- /dev/null +++ b/rips/target/debug/.fingerprint/typenum-5ab41de9c8ed48a1/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[857979250431893282,"build_script_build",false,5310527831789827670]],"local":[{"RerunIfChanged":{"output":"debug/build/typenum-5ab41de9c8ed48a1/output","paths":["tests"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/typenum-6421f67b9a37a8a3/dep-lib-typenum b/rips/target/debug/.fingerprint/typenum-6421f67b9a37a8a3/dep-lib-typenum new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/typenum-6421f67b9a37a8a3/dep-lib-typenum differ diff --git a/rips/target/debug/.fingerprint/typenum-6421f67b9a37a8a3/invoked.timestamp b/rips/target/debug/.fingerprint/typenum-6421f67b9a37a8a3/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/typenum-6421f67b9a37a8a3/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/typenum-6421f67b9a37a8a3/lib-typenum b/rips/target/debug/.fingerprint/typenum-6421f67b9a37a8a3/lib-typenum new file mode 100644 index 00000000..0f8210e8 --- /dev/null +++ b/rips/target/debug/.fingerprint/typenum-6421f67b9a37a8a3/lib-typenum @@ -0,0 +1 @@ +834241334b0e32eb \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/typenum-6421f67b9a37a8a3/lib-typenum.json b/rips/target/debug/.fingerprint/typenum-6421f67b9a37a8a3/lib-typenum.json new file mode 100644 index 00000000..91d8dc6e --- /dev/null +++ b/rips/target/debug/.fingerprint/typenum-6421f67b9a37a8a3/lib-typenum.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[]","declared_features":"[\"const-generics\", \"force_unix_path_separator\", \"i128\", \"no_std\", \"scale-info\", \"scale_info\", \"strict\"]","target":2349969882102649915,"profile":8276155916380437441,"path":6857745712501784369,"deps":[[857979250431893282,"build_script_build",false,18144948445835280314]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/typenum-6421f67b9a37a8a3/dep-lib-typenum","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/typenum-6c22b58afa718dfb/build-script-build-script-build b/rips/target/debug/.fingerprint/typenum-6c22b58afa718dfb/build-script-build-script-build new file mode 100644 index 00000000..f8106004 --- /dev/null +++ b/rips/target/debug/.fingerprint/typenum-6c22b58afa718dfb/build-script-build-script-build @@ -0,0 +1 @@ +5676a837edc8b249 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/typenum-6c22b58afa718dfb/build-script-build-script-build.json b/rips/target/debug/.fingerprint/typenum-6c22b58afa718dfb/build-script-build-script-build.json new file mode 100644 index 00000000..eafe8b1e --- /dev/null +++ b/rips/target/debug/.fingerprint/typenum-6c22b58afa718dfb/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[]","declared_features":"[\"const-generics\", \"force_unix_path_separator\", \"i128\", \"no_std\", \"scale-info\", \"scale_info\", \"strict\"]","target":17883862002600103897,"profile":3033921117576893,"path":14269249524877980890,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/typenum-6c22b58afa718dfb/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/typenum-6c22b58afa718dfb/dep-build-script-build-script-build b/rips/target/debug/.fingerprint/typenum-6c22b58afa718dfb/dep-build-script-build-script-build new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/typenum-6c22b58afa718dfb/dep-build-script-build-script-build differ diff --git a/rips/target/debug/.fingerprint/typenum-6c22b58afa718dfb/invoked.timestamp b/rips/target/debug/.fingerprint/typenum-6c22b58afa718dfb/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/typenum-6c22b58afa718dfb/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/unicode-ident-3a83af2464504a77/dep-lib-unicode_ident b/rips/target/debug/.fingerprint/unicode-ident-3a83af2464504a77/dep-lib-unicode_ident new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/unicode-ident-3a83af2464504a77/dep-lib-unicode_ident differ diff --git a/rips/target/debug/.fingerprint/unicode-ident-3a83af2464504a77/invoked.timestamp b/rips/target/debug/.fingerprint/unicode-ident-3a83af2464504a77/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/unicode-ident-3a83af2464504a77/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/unicode-ident-3a83af2464504a77/lib-unicode_ident b/rips/target/debug/.fingerprint/unicode-ident-3a83af2464504a77/lib-unicode_ident new file mode 100644 index 00000000..e49af8b3 --- /dev/null +++ b/rips/target/debug/.fingerprint/unicode-ident-3a83af2464504a77/lib-unicode_ident @@ -0,0 +1 @@ +25a7704e7751c38e \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/unicode-ident-3a83af2464504a77/lib-unicode_ident.json b/rips/target/debug/.fingerprint/unicode-ident-3a83af2464504a77/lib-unicode_ident.json new file mode 100644 index 00000000..61cc4bd3 --- /dev/null +++ b/rips/target/debug/.fingerprint/unicode-ident-3a83af2464504a77/lib-unicode_ident.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[]","declared_features":"[]","target":14045917370260632744,"profile":3033921117576893,"path":16540642671912198612,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/unicode-ident-3a83af2464504a77/dep-lib-unicode_ident","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/version_check-139d56a0601b5555/dep-lib-version_check b/rips/target/debug/.fingerprint/version_check-139d56a0601b5555/dep-lib-version_check new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/version_check-139d56a0601b5555/dep-lib-version_check differ diff --git a/rips/target/debug/.fingerprint/version_check-139d56a0601b5555/invoked.timestamp b/rips/target/debug/.fingerprint/version_check-139d56a0601b5555/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/version_check-139d56a0601b5555/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/version_check-139d56a0601b5555/lib-version_check b/rips/target/debug/.fingerprint/version_check-139d56a0601b5555/lib-version_check new file mode 100644 index 00000000..4f96648c --- /dev/null +++ b/rips/target/debug/.fingerprint/version_check-139d56a0601b5555/lib-version_check @@ -0,0 +1 @@ +d8a2eecc1396e375 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/version_check-139d56a0601b5555/lib-version_check.json b/rips/target/debug/.fingerprint/version_check-139d56a0601b5555/lib-version_check.json new file mode 100644 index 00000000..d9872faf --- /dev/null +++ b/rips/target/debug/.fingerprint/version_check-139d56a0601b5555/lib-version_check.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[]","declared_features":"[]","target":18099224280402537651,"profile":3033921117576893,"path":7362561081695135885,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/version_check-139d56a0601b5555/dep-lib-version_check","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/zerocopy-0733d98ae90b3c50/build-script-build-script-build b/rips/target/debug/.fingerprint/zerocopy-0733d98ae90b3c50/build-script-build-script-build new file mode 100644 index 00000000..ea6e2d5f --- /dev/null +++ b/rips/target/debug/.fingerprint/zerocopy-0733d98ae90b3c50/build-script-build-script-build @@ -0,0 +1 @@ +e88e2337751eff17 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/zerocopy-0733d98ae90b3c50/build-script-build-script-build.json b/rips/target/debug/.fingerprint/zerocopy-0733d98ae90b3c50/build-script-build-script-build.json new file mode 100644 index 00000000..92bca447 --- /dev/null +++ b/rips/target/debug/.fingerprint/zerocopy-0733d98ae90b3c50/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"simd\"]","declared_features":"[\"__internal_use_only_features_that_work_on_stable\", \"alloc\", \"derive\", \"float-nightly\", \"simd\", \"simd-nightly\", \"std\", \"zerocopy-derive\"]","target":5408242616063297496,"profile":3033921117576893,"path":14251006842337440631,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/zerocopy-0733d98ae90b3c50/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/zerocopy-0733d98ae90b3c50/dep-build-script-build-script-build b/rips/target/debug/.fingerprint/zerocopy-0733d98ae90b3c50/dep-build-script-build-script-build new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/zerocopy-0733d98ae90b3c50/dep-build-script-build-script-build differ diff --git a/rips/target/debug/.fingerprint/zerocopy-0733d98ae90b3c50/invoked.timestamp b/rips/target/debug/.fingerprint/zerocopy-0733d98ae90b3c50/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/zerocopy-0733d98ae90b3c50/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/zerocopy-3cca269e323958c9/run-build-script-build-script-build b/rips/target/debug/.fingerprint/zerocopy-3cca269e323958c9/run-build-script-build-script-build new file mode 100644 index 00000000..d2932ed2 --- /dev/null +++ b/rips/target/debug/.fingerprint/zerocopy-3cca269e323958c9/run-build-script-build-script-build @@ -0,0 +1 @@ +fabf594b20befc93 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/zerocopy-3cca269e323958c9/run-build-script-build-script-build.json b/rips/target/debug/.fingerprint/zerocopy-3cca269e323958c9/run-build-script-build-script-build.json new file mode 100644 index 00000000..b64c1950 --- /dev/null +++ b/rips/target/debug/.fingerprint/zerocopy-3cca269e323958c9/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[17375358419629610217,"build_script_build",false,1729134270718643944]],"local":[{"RerunIfChanged":{"output":"debug/build/zerocopy-3cca269e323958c9/output","paths":["build.rs","Cargo.toml"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/zerocopy-f21d06beaaa1ddf3/dep-lib-zerocopy b/rips/target/debug/.fingerprint/zerocopy-f21d06beaaa1ddf3/dep-lib-zerocopy new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/zerocopy-f21d06beaaa1ddf3/dep-lib-zerocopy differ diff --git a/rips/target/debug/.fingerprint/zerocopy-f21d06beaaa1ddf3/invoked.timestamp b/rips/target/debug/.fingerprint/zerocopy-f21d06beaaa1ddf3/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/zerocopy-f21d06beaaa1ddf3/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/zerocopy-f21d06beaaa1ddf3/lib-zerocopy b/rips/target/debug/.fingerprint/zerocopy-f21d06beaaa1ddf3/lib-zerocopy new file mode 100644 index 00000000..7397c2e4 --- /dev/null +++ b/rips/target/debug/.fingerprint/zerocopy-f21d06beaaa1ddf3/lib-zerocopy @@ -0,0 +1 @@ +e54ad96b6ec1d724 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/zerocopy-f21d06beaaa1ddf3/lib-zerocopy.json b/rips/target/debug/.fingerprint/zerocopy-f21d06beaaa1ddf3/lib-zerocopy.json new file mode 100644 index 00000000..982f1fb7 --- /dev/null +++ b/rips/target/debug/.fingerprint/zerocopy-f21d06beaaa1ddf3/lib-zerocopy.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[\"simd\"]","declared_features":"[\"__internal_use_only_features_that_work_on_stable\", \"alloc\", \"derive\", \"float-nightly\", \"simd\", \"simd-nightly\", \"std\", \"zerocopy-derive\"]","target":3084901215544504908,"profile":8276155916380437441,"path":12072611277383523999,"deps":[[17375358419629610217,"build_script_build",false,10663607063618895866]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/zerocopy-f21d06beaaa1ddf3/dep-lib-zerocopy","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/zmij-2d3f8199cf809bb9/dep-lib-zmij b/rips/target/debug/.fingerprint/zmij-2d3f8199cf809bb9/dep-lib-zmij new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/zmij-2d3f8199cf809bb9/dep-lib-zmij differ diff --git a/rips/target/debug/.fingerprint/zmij-2d3f8199cf809bb9/invoked.timestamp b/rips/target/debug/.fingerprint/zmij-2d3f8199cf809bb9/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/zmij-2d3f8199cf809bb9/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/zmij-2d3f8199cf809bb9/lib-zmij b/rips/target/debug/.fingerprint/zmij-2d3f8199cf809bb9/lib-zmij new file mode 100644 index 00000000..563aa995 --- /dev/null +++ b/rips/target/debug/.fingerprint/zmij-2d3f8199cf809bb9/lib-zmij @@ -0,0 +1 @@ +2104ffb51def1477 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/zmij-2d3f8199cf809bb9/lib-zmij.json b/rips/target/debug/.fingerprint/zmij-2d3f8199cf809bb9/lib-zmij.json new file mode 100644 index 00000000..8190cf54 --- /dev/null +++ b/rips/target/debug/.fingerprint/zmij-2d3f8199cf809bb9/lib-zmij.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[]","declared_features":"[\"no-panic\"]","target":16603507647234574737,"profile":8276155916380437441,"path":10532537210571192346,"deps":[[12347024475581975995,"build_script_build",false,13522743688294664977]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/zmij-2d3f8199cf809bb9/dep-lib-zmij","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/zmij-3f388d1711f78f3d/run-build-script-build-script-build b/rips/target/debug/.fingerprint/zmij-3f388d1711f78f3d/run-build-script-build-script-build new file mode 100644 index 00000000..4141fba8 --- /dev/null +++ b/rips/target/debug/.fingerprint/zmij-3f388d1711f78f3d/run-build-script-build-script-build @@ -0,0 +1 @@ +118b75e9bc6faabb \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/zmij-3f388d1711f78f3d/run-build-script-build-script-build.json b/rips/target/debug/.fingerprint/zmij-3f388d1711f78f3d/run-build-script-build-script-build.json new file mode 100644 index 00000000..12f350aa --- /dev/null +++ b/rips/target/debug/.fingerprint/zmij-3f388d1711f78f3d/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[12347024475581975995,"build_script_build",false,1178342661146786301]],"local":[{"RerunIfChanged":{"output":"debug/build/zmij-3f388d1711f78f3d/output","paths":["build.rs"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/zmij-8ac869f69dd58f82/build-script-build-script-build b/rips/target/debug/.fingerprint/zmij-8ac869f69dd58f82/build-script-build-script-build new file mode 100644 index 00000000..16cc164d --- /dev/null +++ b/rips/target/debug/.fingerprint/zmij-8ac869f69dd58f82/build-script-build-script-build @@ -0,0 +1 @@ +fdb9573d68505a10 \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/zmij-8ac869f69dd58f82/build-script-build-script-build.json b/rips/target/debug/.fingerprint/zmij-8ac869f69dd58f82/build-script-build-script-build.json new file mode 100644 index 00000000..513340b3 --- /dev/null +++ b/rips/target/debug/.fingerprint/zmij-8ac869f69dd58f82/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":10088478398040096810,"features":"[]","declared_features":"[\"no-panic\"]","target":5408242616063297496,"profile":3033921117576893,"path":2700519022166012791,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/zmij-8ac869f69dd58f82/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0} \ No newline at end of file diff --git a/rips/target/debug/.fingerprint/zmij-8ac869f69dd58f82/dep-build-script-build-script-build b/rips/target/debug/.fingerprint/zmij-8ac869f69dd58f82/dep-build-script-build-script-build new file mode 100644 index 00000000..ec3cb8bf Binary files /dev/null and b/rips/target/debug/.fingerprint/zmij-8ac869f69dd58f82/dep-build-script-build-script-build differ diff --git a/rips/target/debug/.fingerprint/zmij-8ac869f69dd58f82/invoked.timestamp b/rips/target/debug/.fingerprint/zmij-8ac869f69dd58f82/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rips/target/debug/.fingerprint/zmij-8ac869f69dd58f82/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rips/target/debug/deps/block_buffer-a7fbb26b4819d9be.d b/rips/target/debug/deps/block_buffer-a7fbb26b4819d9be.d new file mode 100644 index 00000000..8214b766 --- /dev/null +++ b/rips/target/debug/deps/block_buffer-a7fbb26b4819d9be.d @@ -0,0 +1,6 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/block_buffer-a7fbb26b4819d9be.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/block-buffer-0.10.4/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/block-buffer-0.10.4/src/sealed.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libblock_buffer-a7fbb26b4819d9be.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/block-buffer-0.10.4/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/block-buffer-0.10.4/src/sealed.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/block-buffer-0.10.4/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/block-buffer-0.10.4/src/sealed.rs: diff --git a/rips/target/debug/deps/cfg_if-9f5c035e4a47d6d5.d b/rips/target/debug/deps/cfg_if-9f5c035e4a47d6d5.d new file mode 100644 index 00000000..6fe29ef4 --- /dev/null +++ b/rips/target/debug/deps/cfg_if-9f5c035e4a47d6d5.d @@ -0,0 +1,5 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/cfg_if-9f5c035e4a47d6d5.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cfg-if-1.0.4/src/lib.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libcfg_if-9f5c035e4a47d6d5.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cfg-if-1.0.4/src/lib.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cfg-if-1.0.4/src/lib.rs: diff --git a/rips/target/debug/deps/cpufeatures-b3bcfc895e45595d.d b/rips/target/debug/deps/cpufeatures-b3bcfc895e45595d.d new file mode 100644 index 00000000..b89152a0 --- /dev/null +++ b/rips/target/debug/deps/cpufeatures-b3bcfc895e45595d.d @@ -0,0 +1,6 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/cpufeatures-b3bcfc895e45595d.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpufeatures-0.2.17/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpufeatures-0.2.17/src/aarch64.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libcpufeatures-b3bcfc895e45595d.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpufeatures-0.2.17/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpufeatures-0.2.17/src/aarch64.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpufeatures-0.2.17/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpufeatures-0.2.17/src/aarch64.rs: diff --git a/rips/target/debug/deps/crypto_common-5a48b16dd3d3ae17.d b/rips/target/debug/deps/crypto_common-5a48b16dd3d3ae17.d new file mode 100644 index 00000000..c4218d3a --- /dev/null +++ b/rips/target/debug/deps/crypto_common-5a48b16dd3d3ae17.d @@ -0,0 +1,5 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/crypto_common-5a48b16dd3d3ae17.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crypto-common-0.1.7/src/lib.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libcrypto_common-5a48b16dd3d3ae17.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crypto-common-0.1.7/src/lib.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crypto-common-0.1.7/src/lib.rs: diff --git a/rips/target/debug/deps/digest-147b10fff2a1888b.d b/rips/target/debug/deps/digest-147b10fff2a1888b.d new file mode 100644 index 00000000..1bea8c54 --- /dev/null +++ b/rips/target/debug/deps/digest-147b10fff2a1888b.d @@ -0,0 +1,11 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/digest-147b10fff2a1888b.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/core_api.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/core_api/ct_variable.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/core_api/rt_variable.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/core_api/wrapper.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/core_api/xof_reader.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/digest.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libdigest-147b10fff2a1888b.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/core_api.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/core_api/ct_variable.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/core_api/rt_variable.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/core_api/wrapper.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/core_api/xof_reader.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/digest.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/core_api.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/core_api/ct_variable.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/core_api/rt_variable.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/core_api/wrapper.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/core_api/xof_reader.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/digest.rs: diff --git a/rips/target/debug/deps/generic_array-073be687da38b886.d b/rips/target/debug/deps/generic_array-073be687da38b886.d new file mode 100644 index 00000000..6b05ac84 --- /dev/null +++ b/rips/target/debug/deps/generic_array-073be687da38b886.d @@ -0,0 +1,11 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/generic_array-073be687da38b886.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/hex.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/impls.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/arr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/functional.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/iter.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/sequence.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libgeneric_array-073be687da38b886.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/hex.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/impls.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/arr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/functional.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/iter.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/sequence.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/hex.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/impls.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/arr.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/functional.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/iter.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/sequence.rs: diff --git a/rips/target/debug/deps/getrandom-8b8ecffd4a36e365.d b/rips/target/debug/deps/getrandom-8b8ecffd4a36e365.d new file mode 100644 index 00000000..61709d6d --- /dev/null +++ b/rips/target/debug/deps/getrandom-8b8ecffd4a36e365.d @@ -0,0 +1,10 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/getrandom-8b8ecffd4a36e365.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/error.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/util.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/error_impls.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/util_libc.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/getentropy.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libgetrandom-8b8ecffd4a36e365.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/error.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/util.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/error_impls.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/util_libc.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/getentropy.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/error.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/util.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/error_impls.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/util_libc.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/getentropy.rs: diff --git a/rips/target/debug/deps/hex-65444197bbd0b835.d b/rips/target/debug/deps/hex-65444197bbd0b835.d new file mode 100644 index 00000000..5cdc85f9 --- /dev/null +++ b/rips/target/debug/deps/hex-65444197bbd0b835.d @@ -0,0 +1,6 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/hex-65444197bbd0b835.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hex-0.4.3/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hex-0.4.3/src/error.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libhex-65444197bbd0b835.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hex-0.4.3/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hex-0.4.3/src/error.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hex-0.4.3/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hex-0.4.3/src/error.rs: diff --git a/rips/target/debug/deps/itoa-efc8bd66b3907534.d b/rips/target/debug/deps/itoa-efc8bd66b3907534.d new file mode 100644 index 00000000..a800f9d9 --- /dev/null +++ b/rips/target/debug/deps/itoa-efc8bd66b3907534.d @@ -0,0 +1,6 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/itoa-efc8bd66b3907534.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.17/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.17/src/u128_ext.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libitoa-efc8bd66b3907534.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.17/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.17/src/u128_ext.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.17/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.17/src/u128_ext.rs: diff --git a/rips/target/debug/deps/libblock_buffer-a7fbb26b4819d9be.rmeta b/rips/target/debug/deps/libblock_buffer-a7fbb26b4819d9be.rmeta new file mode 100644 index 00000000..9c08b28f Binary files /dev/null and b/rips/target/debug/deps/libblock_buffer-a7fbb26b4819d9be.rmeta differ diff --git a/rips/target/debug/deps/libc-2d398fdfeba87a17.d b/rips/target/debug/deps/libc-2d398fdfeba87a17.d new file mode 100644 index 00000000..a3e15b11 --- /dev/null +++ b/rips/target/debug/deps/libc-2d398fdfeba87a17.d @@ -0,0 +1,43 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libc-2d398fdfeba87a17.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/macros.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/common/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/common/bsd.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/common/posix/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/common/posix/pthread.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/common/posix/unistd.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libc/signal.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libc/unistd.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/introspection.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/pthread.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/pthread_impl.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/pthread_spis.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/qos.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/sched.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/spawn.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/stack_np.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/sys/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/sys/_pthread/_pthread_types.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/sys/qos.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/arm/_mcontext.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/mach/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/mach/arm/_structs.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/mach/machine/_structs.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/machine/_mcontext.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/sys/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/sys/signal.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/sys/_types/_ucontext.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/primitives.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/unix/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/unix/bsd/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/unix/bsd/apple/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/unix/bsd/apple/b64/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/unix/bsd/apple/b64/aarch64/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/types.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/liblibc-2d398fdfeba87a17.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/macros.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/common/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/common/bsd.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/common/posix/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/common/posix/pthread.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/common/posix/unistd.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libc/signal.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libc/unistd.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/introspection.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/pthread.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/pthread_impl.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/pthread_spis.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/qos.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/sched.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/spawn.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/stack_np.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/sys/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/sys/_pthread/_pthread_types.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/sys/qos.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/arm/_mcontext.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/mach/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/mach/arm/_structs.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/mach/machine/_structs.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/machine/_mcontext.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/sys/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/sys/signal.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/sys/_types/_ucontext.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/primitives.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/unix/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/unix/bsd/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/unix/bsd/apple/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/unix/bsd/apple/b64/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/unix/bsd/apple/b64/aarch64/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/types.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/macros.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/common/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/common/bsd.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/common/posix/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/common/posix/pthread.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/common/posix/unistd.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libc/signal.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libc/unistd.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/introspection.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/pthread.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/pthread_impl.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/pthread_spis.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/qos.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/sched.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/spawn.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/pthread_/stack_np.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/sys/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/sys/_pthread/_pthread_types.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/libpthread/sys/qos.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/arm/_mcontext.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/mach/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/mach/arm/_structs.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/mach/machine/_structs.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/machine/_mcontext.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/sys/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/sys/signal.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/new/apple/xnu/sys/_types/_ucontext.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/primitives.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/unix/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/unix/bsd/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/unix/bsd/apple/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/unix/bsd/apple/b64/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/unix/bsd/apple/b64/aarch64/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.182/src/types.rs: diff --git a/rips/target/debug/deps/libcfg_if-9f5c035e4a47d6d5.rmeta b/rips/target/debug/deps/libcfg_if-9f5c035e4a47d6d5.rmeta new file mode 100644 index 00000000..08cf6f96 Binary files /dev/null and b/rips/target/debug/deps/libcfg_if-9f5c035e4a47d6d5.rmeta differ diff --git a/rips/target/debug/deps/libcpufeatures-b3bcfc895e45595d.rmeta b/rips/target/debug/deps/libcpufeatures-b3bcfc895e45595d.rmeta new file mode 100644 index 00000000..72315694 Binary files /dev/null and b/rips/target/debug/deps/libcpufeatures-b3bcfc895e45595d.rmeta differ diff --git a/rips/target/debug/deps/libcrypto_common-5a48b16dd3d3ae17.rmeta b/rips/target/debug/deps/libcrypto_common-5a48b16dd3d3ae17.rmeta new file mode 100644 index 00000000..1159820f Binary files /dev/null and b/rips/target/debug/deps/libcrypto_common-5a48b16dd3d3ae17.rmeta differ diff --git a/rips/target/debug/deps/libdigest-147b10fff2a1888b.rmeta b/rips/target/debug/deps/libdigest-147b10fff2a1888b.rmeta new file mode 100644 index 00000000..d12172af Binary files /dev/null and b/rips/target/debug/deps/libdigest-147b10fff2a1888b.rmeta differ diff --git a/rips/target/debug/deps/libgeneric_array-073be687da38b886.rmeta b/rips/target/debug/deps/libgeneric_array-073be687da38b886.rmeta new file mode 100644 index 00000000..f86fd7e3 Binary files /dev/null and b/rips/target/debug/deps/libgeneric_array-073be687da38b886.rmeta differ diff --git a/rips/target/debug/deps/libgetrandom-8b8ecffd4a36e365.rmeta b/rips/target/debug/deps/libgetrandom-8b8ecffd4a36e365.rmeta new file mode 100644 index 00000000..56bd6c96 Binary files /dev/null and b/rips/target/debug/deps/libgetrandom-8b8ecffd4a36e365.rmeta differ diff --git a/rips/target/debug/deps/libhex-65444197bbd0b835.rmeta b/rips/target/debug/deps/libhex-65444197bbd0b835.rmeta new file mode 100644 index 00000000..6b623aa9 Binary files /dev/null and b/rips/target/debug/deps/libhex-65444197bbd0b835.rmeta differ diff --git a/rips/target/debug/deps/libitoa-efc8bd66b3907534.rmeta b/rips/target/debug/deps/libitoa-efc8bd66b3907534.rmeta new file mode 100644 index 00000000..8842fd10 Binary files /dev/null and b/rips/target/debug/deps/libitoa-efc8bd66b3907534.rmeta differ diff --git a/rips/target/debug/deps/liblibc-2d398fdfeba87a17.rmeta b/rips/target/debug/deps/liblibc-2d398fdfeba87a17.rmeta new file mode 100644 index 00000000..10193acb Binary files /dev/null and b/rips/target/debug/deps/liblibc-2d398fdfeba87a17.rmeta differ diff --git a/rips/target/debug/deps/libmemchr-9c012e30c6a06cd8.rmeta b/rips/target/debug/deps/libmemchr-9c012e30c6a06cd8.rmeta new file mode 100644 index 00000000..a66139d8 Binary files /dev/null and b/rips/target/debug/deps/libmemchr-9c012e30c6a06cd8.rmeta differ diff --git a/rips/target/debug/deps/libppv_lite86-07c9c45dec2097d7.rmeta b/rips/target/debug/deps/libppv_lite86-07c9c45dec2097d7.rmeta new file mode 100644 index 00000000..c9970087 Binary files /dev/null and b/rips/target/debug/deps/libppv_lite86-07c9c45dec2097d7.rmeta differ diff --git a/rips/target/debug/deps/libproc_macro2-13365d488cc5c6b7.rlib b/rips/target/debug/deps/libproc_macro2-13365d488cc5c6b7.rlib new file mode 100644 index 00000000..cc32e98a Binary files /dev/null and b/rips/target/debug/deps/libproc_macro2-13365d488cc5c6b7.rlib differ diff --git a/rips/target/debug/deps/libproc_macro2-13365d488cc5c6b7.rmeta b/rips/target/debug/deps/libproc_macro2-13365d488cc5c6b7.rmeta new file mode 100644 index 00000000..c37cc65b Binary files /dev/null and b/rips/target/debug/deps/libproc_macro2-13365d488cc5c6b7.rmeta differ diff --git a/rips/target/debug/deps/libquote-484c7badd3a025ed.rlib b/rips/target/debug/deps/libquote-484c7badd3a025ed.rlib new file mode 100644 index 00000000..53ebe59d Binary files /dev/null and b/rips/target/debug/deps/libquote-484c7badd3a025ed.rlib differ diff --git a/rips/target/debug/deps/libquote-484c7badd3a025ed.rmeta b/rips/target/debug/deps/libquote-484c7badd3a025ed.rmeta new file mode 100644 index 00000000..72225524 Binary files /dev/null and b/rips/target/debug/deps/libquote-484c7badd3a025ed.rmeta differ diff --git a/rips/target/debug/deps/librand-a84a652204ae7ee2.rmeta b/rips/target/debug/deps/librand-a84a652204ae7ee2.rmeta new file mode 100644 index 00000000..abcf5696 Binary files /dev/null and b/rips/target/debug/deps/librand-a84a652204ae7ee2.rmeta differ diff --git a/rips/target/debug/deps/librand_chacha-45fcb69a566c069a.rmeta b/rips/target/debug/deps/librand_chacha-45fcb69a566c069a.rmeta new file mode 100644 index 00000000..77825e93 Binary files /dev/null and b/rips/target/debug/deps/librand_chacha-45fcb69a566c069a.rmeta differ diff --git a/rips/target/debug/deps/librand_core-223b5957b186237e.rmeta b/rips/target/debug/deps/librand_core-223b5957b186237e.rmeta new file mode 100644 index 00000000..dbb8ff42 Binary files /dev/null and b/rips/target/debug/deps/librand_core-223b5957b186237e.rmeta differ diff --git a/rips/target/debug/deps/libserde-351a032209beb343.rmeta b/rips/target/debug/deps/libserde-351a032209beb343.rmeta new file mode 100644 index 00000000..4748fcee Binary files /dev/null and b/rips/target/debug/deps/libserde-351a032209beb343.rmeta differ diff --git a/rips/target/debug/deps/libserde_core-64579cb2fcb88754.rmeta b/rips/target/debug/deps/libserde_core-64579cb2fcb88754.rmeta new file mode 100644 index 00000000..9c0f2054 Binary files /dev/null and b/rips/target/debug/deps/libserde_core-64579cb2fcb88754.rmeta differ diff --git a/rips/target/debug/deps/libserde_derive-068eb568cd5e4812.dylib b/rips/target/debug/deps/libserde_derive-068eb568cd5e4812.dylib new file mode 100755 index 00000000..6cbb330d Binary files /dev/null and b/rips/target/debug/deps/libserde_derive-068eb568cd5e4812.dylib differ diff --git a/rips/target/debug/deps/libserde_json-aa83de590248cba9.rmeta b/rips/target/debug/deps/libserde_json-aa83de590248cba9.rmeta new file mode 100644 index 00000000..742c0fe0 Binary files /dev/null and b/rips/target/debug/deps/libserde_json-aa83de590248cba9.rmeta differ diff --git a/rips/target/debug/deps/libsha2-6c3a832343f33522.rmeta b/rips/target/debug/deps/libsha2-6c3a832343f33522.rmeta new file mode 100644 index 00000000..aa9e165d Binary files /dev/null and b/rips/target/debug/deps/libsha2-6c3a832343f33522.rmeta differ diff --git a/rips/target/debug/deps/libsyn-e1e7724cfa41f357.rlib b/rips/target/debug/deps/libsyn-e1e7724cfa41f357.rlib new file mode 100644 index 00000000..d675c42c Binary files /dev/null and b/rips/target/debug/deps/libsyn-e1e7724cfa41f357.rlib differ diff --git a/rips/target/debug/deps/libsyn-e1e7724cfa41f357.rmeta b/rips/target/debug/deps/libsyn-e1e7724cfa41f357.rmeta new file mode 100644 index 00000000..9f68d840 Binary files /dev/null and b/rips/target/debug/deps/libsyn-e1e7724cfa41f357.rmeta differ diff --git a/rips/target/debug/deps/libtypenum-6421f67b9a37a8a3.rmeta b/rips/target/debug/deps/libtypenum-6421f67b9a37a8a3.rmeta new file mode 100644 index 00000000..ebe472c7 Binary files /dev/null and b/rips/target/debug/deps/libtypenum-6421f67b9a37a8a3.rmeta differ diff --git a/rips/target/debug/deps/libunicode_ident-3a83af2464504a77.rlib b/rips/target/debug/deps/libunicode_ident-3a83af2464504a77.rlib new file mode 100644 index 00000000..b64e96e2 Binary files /dev/null and b/rips/target/debug/deps/libunicode_ident-3a83af2464504a77.rlib differ diff --git a/rips/target/debug/deps/libunicode_ident-3a83af2464504a77.rmeta b/rips/target/debug/deps/libunicode_ident-3a83af2464504a77.rmeta new file mode 100644 index 00000000..b5aa9fb1 Binary files /dev/null and b/rips/target/debug/deps/libunicode_ident-3a83af2464504a77.rmeta differ diff --git a/rips/target/debug/deps/libversion_check-139d56a0601b5555.rlib b/rips/target/debug/deps/libversion_check-139d56a0601b5555.rlib new file mode 100644 index 00000000..fd3a3438 Binary files /dev/null and b/rips/target/debug/deps/libversion_check-139d56a0601b5555.rlib differ diff --git a/rips/target/debug/deps/libversion_check-139d56a0601b5555.rmeta b/rips/target/debug/deps/libversion_check-139d56a0601b5555.rmeta new file mode 100644 index 00000000..8feae9a8 Binary files /dev/null and b/rips/target/debug/deps/libversion_check-139d56a0601b5555.rmeta differ diff --git a/rips/target/debug/deps/libzerocopy-f21d06beaaa1ddf3.rmeta b/rips/target/debug/deps/libzerocopy-f21d06beaaa1ddf3.rmeta new file mode 100644 index 00000000..614ec405 Binary files /dev/null and b/rips/target/debug/deps/libzerocopy-f21d06beaaa1ddf3.rmeta differ diff --git a/rips/target/debug/deps/libzmij-2d3f8199cf809bb9.rmeta b/rips/target/debug/deps/libzmij-2d3f8199cf809bb9.rmeta new file mode 100644 index 00000000..1095afcf Binary files /dev/null and b/rips/target/debug/deps/libzmij-2d3f8199cf809bb9.rmeta differ diff --git a/rips/target/debug/deps/memchr-9c012e30c6a06cd8.d b/rips/target/debug/deps/memchr-9c012e30c6a06cd8.d new file mode 100644 index 00000000..1d6cf950 --- /dev/null +++ b/rips/target/debug/deps/memchr-9c012e30c6a06cd8.d @@ -0,0 +1,28 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/memchr-9c012e30c6a06cd8.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/macros.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/memchr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/packedpair/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/packedpair/default_rank.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/rabinkarp.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/shiftor.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/twoway.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/memchr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/packedpair.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/neon/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/neon/memchr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/neon/packedpair.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/memchr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/cow.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/ext.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memchr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memmem/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memmem/searcher.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/vector.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libmemchr-9c012e30c6a06cd8.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/macros.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/memchr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/packedpair/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/packedpair/default_rank.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/rabinkarp.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/shiftor.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/twoway.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/memchr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/packedpair.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/neon/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/neon/memchr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/neon/packedpair.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/memchr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/cow.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/ext.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memchr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memmem/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memmem/searcher.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/vector.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/macros.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/memchr.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/packedpair/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/packedpair/default_rank.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/rabinkarp.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/shiftor.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/twoway.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/memchr.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/packedpair.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/neon/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/neon/memchr.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/neon/packedpair.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/memchr.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/cow.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/ext.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memchr.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memmem/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memmem/searcher.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/vector.rs: diff --git a/rips/target/debug/deps/ppv_lite86-07c9c45dec2097d7.d b/rips/target/debug/deps/ppv_lite86-07c9c45dec2097d7.d new file mode 100644 index 00000000..151744d4 --- /dev/null +++ b/rips/target/debug/deps/ppv_lite86-07c9c45dec2097d7.d @@ -0,0 +1,8 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/ppv_lite86-07c9c45dec2097d7.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/soft.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/types.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/generic.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libppv_lite86-07c9c45dec2097d7.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/soft.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/types.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/generic.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/soft.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/types.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/generic.rs: diff --git a/rips/target/debug/deps/proc_macro2-13365d488cc5c6b7.d b/rips/target/debug/deps/proc_macro2-13365d488cc5c6b7.d new file mode 100644 index 00000000..4ffcd526 --- /dev/null +++ b/rips/target/debug/deps/proc_macro2-13365d488cc5c6b7.d @@ -0,0 +1,17 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/proc_macro2-13365d488cc5c6b7.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/marker.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/parse.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe/proc_macro_span_file.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe/proc_macro_span_location.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/rcvec.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/detection.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/fallback.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/extra.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/wrapper.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libproc_macro2-13365d488cc5c6b7.rlib: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/marker.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/parse.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe/proc_macro_span_file.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe/proc_macro_span_location.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/rcvec.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/detection.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/fallback.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/extra.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/wrapper.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libproc_macro2-13365d488cc5c6b7.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/marker.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/parse.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe/proc_macro_span_file.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe/proc_macro_span_location.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/rcvec.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/detection.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/fallback.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/extra.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/wrapper.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/marker.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/parse.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe/proc_macro_span_file.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe/proc_macro_span_location.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/rcvec.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/detection.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/fallback.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/extra.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/wrapper.rs: diff --git a/rips/target/debug/deps/quote-484c7badd3a025ed.d b/rips/target/debug/deps/quote-484c7badd3a025ed.d new file mode 100644 index 00000000..703cde1b --- /dev/null +++ b/rips/target/debug/deps/quote-484c7badd3a025ed.d @@ -0,0 +1,13 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/quote-484c7badd3a025ed.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/ext.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/format.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/ident_fragment.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/to_tokens.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/runtime.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/spanned.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libquote-484c7badd3a025ed.rlib: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/ext.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/format.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/ident_fragment.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/to_tokens.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/runtime.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/spanned.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libquote-484c7badd3a025ed.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/ext.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/format.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/ident_fragment.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/to_tokens.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/runtime.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/spanned.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/ext.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/format.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/ident_fragment.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/to_tokens.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/runtime.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.45/src/spanned.rs: diff --git a/rips/target/debug/deps/rand-a84a652204ae7ee2.d b/rips/target/debug/deps/rand-a84a652204ae7ee2.d new file mode 100644 index 00000000..384df921 --- /dev/null +++ b/rips/target/debug/deps/rand-a84a652204ae7ee2.d @@ -0,0 +1,27 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/rand-a84a652204ae7ee2.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/bernoulli.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/distribution.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/float.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/integer.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/other.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/slice.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/utils.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/weighted_index.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/uniform.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/weighted.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/prelude.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rng.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/adapter/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/adapter/read.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/adapter/reseeding.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/mock.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/std.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/thread.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/seq/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/seq/index.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/librand-a84a652204ae7ee2.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/bernoulli.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/distribution.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/float.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/integer.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/other.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/slice.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/utils.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/weighted_index.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/uniform.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/weighted.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/prelude.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rng.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/adapter/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/adapter/read.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/adapter/reseeding.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/mock.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/std.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/thread.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/seq/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/seq/index.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/bernoulli.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/distribution.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/float.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/integer.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/other.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/slice.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/utils.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/weighted_index.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/uniform.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/weighted.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/prelude.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rng.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/adapter/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/adapter/read.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/adapter/reseeding.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/mock.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/std.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/thread.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/seq/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/seq/index.rs: diff --git a/rips/target/debug/deps/rand_chacha-45fcb69a566c069a.d b/rips/target/debug/deps/rand_chacha-45fcb69a566c069a.d new file mode 100644 index 00000000..75046338 --- /dev/null +++ b/rips/target/debug/deps/rand_chacha-45fcb69a566c069a.d @@ -0,0 +1,7 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/rand_chacha-45fcb69a566c069a.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/chacha.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/guts.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/librand_chacha-45fcb69a566c069a.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/chacha.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/guts.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/chacha.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/guts.rs: diff --git a/rips/target/debug/deps/rand_core-223b5957b186237e.d b/rips/target/debug/deps/rand_core-223b5957b186237e.d new file mode 100644 index 00000000..ec4b64f5 --- /dev/null +++ b/rips/target/debug/deps/rand_core-223b5957b186237e.d @@ -0,0 +1,10 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/rand_core-223b5957b186237e.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/block.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/error.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/impls.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/le.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/os.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/librand_core-223b5957b186237e.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/block.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/error.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/impls.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/le.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/os.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/block.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/error.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/impls.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/le.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/os.rs: diff --git a/rips/target/debug/deps/rustchain-5bc11289b0c123ee.d b/rips/target/debug/deps/rustchain-5bc11289b0c123ee.d new file mode 100644 index 00000000..a4f5ac88 --- /dev/null +++ b/rips/target/debug/deps/rustchain-5bc11289b0c123ee.d @@ -0,0 +1,11 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/rustchain-5bc11289b0c123ee.d: src/lib.rs src/core_types.rs src/proof_of_antiquity.rs src/nft_badges.rs src/network.rs src/governance.rs src/ergo_bridge.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/librustchain-5bc11289b0c123ee.rmeta: src/lib.rs src/core_types.rs src/proof_of_antiquity.rs src/nft_badges.rs src/network.rs src/governance.rs src/ergo_bridge.rs + +src/lib.rs: +src/core_types.rs: +src/proof_of_antiquity.rs: +src/nft_badges.rs: +src/network.rs: +src/governance.rs: +src/ergo_bridge.rs: diff --git a/rips/target/debug/deps/serde-351a032209beb343.d b/rips/target/debug/deps/serde-351a032209beb343.d new file mode 100644 index 00000000..efb9f76b --- /dev/null +++ b/rips/target/debug/deps/serde-351a032209beb343.d @@ -0,0 +1,12 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/serde-351a032209beb343.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/integer128.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/private/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/private/de.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/private/ser.rs /private/tmp/rustchain-wt/issue734-plus/rips/target/debug/build/serde-f7820387e22cc7ff/out/private.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libserde-351a032209beb343.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/integer128.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/private/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/private/de.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/private/ser.rs /private/tmp/rustchain-wt/issue734-plus/rips/target/debug/build/serde-f7820387e22cc7ff/out/private.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/integer128.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/private/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/private/de.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/private/ser.rs: +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/build/serde-f7820387e22cc7ff/out/private.rs: + +# env-dep:OUT_DIR=/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/build/serde-f7820387e22cc7ff/out diff --git a/rips/target/debug/deps/serde_core-64579cb2fcb88754.d b/rips/target/debug/deps/serde_core-64579cb2fcb88754.d new file mode 100644 index 00000000..0f953b36 --- /dev/null +++ b/rips/target/debug/deps/serde_core-64579cb2fcb88754.d @@ -0,0 +1,25 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/serde_core-64579cb2fcb88754.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/crate_root.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/macros.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/value.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/ignored_any.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/fmt.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/impls.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/impossible.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/format.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/content.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/seed.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/doc.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/size_hint.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/string.rs /private/tmp/rustchain-wt/issue734-plus/rips/target/debug/build/serde_core-9009d279787d5772/out/private.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libserde_core-64579cb2fcb88754.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/crate_root.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/macros.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/value.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/ignored_any.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/fmt.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/impls.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/impossible.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/format.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/content.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/seed.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/doc.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/size_hint.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/string.rs /private/tmp/rustchain-wt/issue734-plus/rips/target/debug/build/serde_core-9009d279787d5772/out/private.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/crate_root.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/macros.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/value.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/ignored_any.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/fmt.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/impls.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/impossible.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/format.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/content.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/seed.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/doc.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/size_hint.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/string.rs: +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/build/serde_core-9009d279787d5772/out/private.rs: + +# env-dep:OUT_DIR=/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/build/serde_core-9009d279787d5772/out diff --git a/rips/target/debug/deps/serde_derive-068eb568cd5e4812.d b/rips/target/debug/deps/serde_derive-068eb568cd5e4812.d new file mode 100644 index 00000000..7952e3ff --- /dev/null +++ b/rips/target/debug/deps/serde_derive-068eb568cd5e4812.d @@ -0,0 +1,34 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/serde_derive-068eb568cd5e4812.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/ast.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/attr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/name.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/case.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/check.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/ctxt.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/receiver.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/respan.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/symbol.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/bound.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/fragment.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_adjacently.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_externally.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_internally.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_untagged.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/identifier.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/struct_.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/tuple.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/unit.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/deprecated.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/dummy.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/pretend.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/ser.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/this.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libserde_derive-068eb568cd5e4812.dylib: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/ast.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/attr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/name.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/case.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/check.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/ctxt.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/receiver.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/respan.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/symbol.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/bound.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/fragment.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_adjacently.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_externally.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_internally.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_untagged.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/identifier.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/struct_.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/tuple.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/unit.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/deprecated.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/dummy.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/pretend.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/ser.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/this.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/ast.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/attr.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/name.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/case.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/check.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/ctxt.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/receiver.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/respan.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/symbol.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/bound.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/fragment.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_adjacently.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_externally.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_internally.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_untagged.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/identifier.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/struct_.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/tuple.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/unit.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/deprecated.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/dummy.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/pretend.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/ser.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/this.rs: + +# env-dep:CARGO_PKG_VERSION_PATCH=228 diff --git a/rips/target/debug/deps/serde_json-aa83de590248cba9.d b/rips/target/debug/deps/serde_json-aa83de590248cba9.d new file mode 100644 index 00000000..cd796b6b --- /dev/null +++ b/rips/target/debug/deps/serde_json-aa83de590248cba9.d @@ -0,0 +1,20 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/serde_json-aa83de590248cba9.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/macros.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/de.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/error.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/map.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/ser.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/de.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/from.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/index.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/partial_eq.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/ser.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/io/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/iter.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/number.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/read.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libserde_json-aa83de590248cba9.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/macros.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/de.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/error.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/map.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/ser.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/de.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/from.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/index.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/partial_eq.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/ser.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/io/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/iter.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/number.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/read.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/macros.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/de.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/error.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/map.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/ser.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/de.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/from.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/index.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/partial_eq.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/ser.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/io/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/iter.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/number.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/read.rs: diff --git a/rips/target/debug/deps/sha2-6c3a832343f33522.d b/rips/target/debug/deps/sha2-6c3a832343f33522.d new file mode 100644 index 00000000..83ed3f00 --- /dev/null +++ b/rips/target/debug/deps/sha2-6c3a832343f33522.d @@ -0,0 +1,11 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/sha2-6c3a832343f33522.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/core_api.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha256.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/consts.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha256/soft.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/soft.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libsha2-6c3a832343f33522.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/core_api.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha256.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/consts.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha256/soft.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/soft.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/core_api.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha256.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/consts.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha256/soft.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/soft.rs: diff --git a/rips/target/debug/deps/syn-e1e7724cfa41f357.d b/rips/target/debug/deps/syn-e1e7724cfa41f357.d new file mode 100644 index 00000000..4abbcacd --- /dev/null +++ b/rips/target/debug/deps/syn-e1e7724cfa41f357.d @@ -0,0 +1,49 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/syn-e1e7724cfa41f357.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/macros.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/group.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/token.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/attr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/bigint.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/buffer.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/classify.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/custom_keyword.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/custom_punctuation.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/data.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/derive.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/drops.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/error.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/expr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ext.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/fixup.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/generics.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ident.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lifetime.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lit.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lookahead.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/mac.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/meta.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/op.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/discouraged.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse_macro_input.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse_quote.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/path.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/precedence.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/print.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/punctuated.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/restriction.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/sealed.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/scan_expr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/span.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/spanned.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/thread.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ty.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/verbatim.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/export.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/clone.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libsyn-e1e7724cfa41f357.rlib: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/macros.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/group.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/token.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/attr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/bigint.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/buffer.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/classify.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/custom_keyword.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/custom_punctuation.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/data.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/derive.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/drops.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/error.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/expr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ext.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/fixup.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/generics.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ident.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lifetime.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lit.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lookahead.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/mac.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/meta.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/op.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/discouraged.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse_macro_input.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse_quote.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/path.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/precedence.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/print.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/punctuated.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/restriction.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/sealed.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/scan_expr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/span.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/spanned.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/thread.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ty.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/verbatim.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/export.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/clone.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libsyn-e1e7724cfa41f357.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/macros.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/group.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/token.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/attr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/bigint.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/buffer.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/classify.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/custom_keyword.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/custom_punctuation.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/data.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/derive.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/drops.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/error.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/expr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ext.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/fixup.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/generics.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ident.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lifetime.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lit.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lookahead.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/mac.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/meta.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/op.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/discouraged.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse_macro_input.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse_quote.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/path.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/precedence.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/print.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/punctuated.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/restriction.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/sealed.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/scan_expr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/span.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/spanned.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/thread.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ty.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/verbatim.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/export.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/clone.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/macros.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/group.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/token.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/attr.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/bigint.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/buffer.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/classify.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/custom_keyword.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/custom_punctuation.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/data.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/derive.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/drops.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/error.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/expr.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ext.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/fixup.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/generics.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ident.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lifetime.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lit.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lookahead.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/mac.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/meta.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/op.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/discouraged.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse_macro_input.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse_quote.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/path.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/precedence.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/print.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/punctuated.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/restriction.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/sealed.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/scan_expr.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/span.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/spanned.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/thread.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ty.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/verbatim.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/export.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/clone.rs: diff --git a/rips/target/debug/deps/typenum-6421f67b9a37a8a3.d b/rips/target/debug/deps/typenum-6421f67b9a37a8a3.d new file mode 100644 index 00000000..785cb757 --- /dev/null +++ b/rips/target/debug/deps/typenum-6421f67b9a37a8a3.d @@ -0,0 +1,16 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/typenum-6421f67b9a37a8a3.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/bit.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/gen.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/gen/consts.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/gen/op.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/int.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/marker_traits.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/operator_aliases.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/private.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/type_operators.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/uint.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/array.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libtypenum-6421f67b9a37a8a3.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/bit.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/gen.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/gen/consts.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/gen/op.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/int.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/marker_traits.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/operator_aliases.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/private.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/type_operators.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/uint.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/array.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/bit.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/gen.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/gen/consts.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/gen/op.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/int.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/marker_traits.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/operator_aliases.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/private.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/type_operators.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/uint.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/array.rs: diff --git a/rips/target/debug/deps/unicode_ident-3a83af2464504a77.d b/rips/target/debug/deps/unicode_ident-3a83af2464504a77.d new file mode 100644 index 00000000..1759628c --- /dev/null +++ b/rips/target/debug/deps/unicode_ident-3a83af2464504a77.d @@ -0,0 +1,8 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/unicode_ident-3a83af2464504a77.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.24/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.24/src/tables.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libunicode_ident-3a83af2464504a77.rlib: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.24/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.24/src/tables.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libunicode_ident-3a83af2464504a77.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.24/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.24/src/tables.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.24/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.24/src/tables.rs: diff --git a/rips/target/debug/deps/version_check-139d56a0601b5555.d b/rips/target/debug/deps/version_check-139d56a0601b5555.d new file mode 100644 index 00000000..662338ce --- /dev/null +++ b/rips/target/debug/deps/version_check-139d56a0601b5555.d @@ -0,0 +1,10 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/version_check-139d56a0601b5555.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/version.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/channel.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/date.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libversion_check-139d56a0601b5555.rlib: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/version.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/channel.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/date.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libversion_check-139d56a0601b5555.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/version.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/channel.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/date.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/version.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/channel.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/date.rs: diff --git a/rips/target/debug/deps/zerocopy-f21d06beaaa1ddf3.d b/rips/target/debug/deps/zerocopy-f21d06beaaa1ddf3.d new file mode 100644 index 00000000..3ab05151 --- /dev/null +++ b/rips/target/debug/deps/zerocopy-f21d06beaaa1ddf3.d @@ -0,0 +1,25 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/zerocopy-f21d06beaaa1ddf3.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/util/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/util/macros.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/util/macro_util.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/byte_slice.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/byteorder.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/deprecated.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/error.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/impls.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/layout.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/macros.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/pointer/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/pointer/inner.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/pointer/invariant.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/pointer/ptr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/pointer/transmute.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/ref.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/split_at.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/wrappers.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libzerocopy-f21d06beaaa1ddf3.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/util/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/util/macros.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/util/macro_util.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/byte_slice.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/byteorder.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/deprecated.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/error.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/impls.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/layout.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/macros.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/pointer/mod.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/pointer/inner.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/pointer/invariant.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/pointer/ptr.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/pointer/transmute.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/ref.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/split_at.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/wrappers.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/util/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/util/macros.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/util/macro_util.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/byte_slice.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/byteorder.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/deprecated.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/error.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/impls.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/layout.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/macros.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/pointer/mod.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/pointer/inner.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/pointer/invariant.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/pointer/ptr.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/pointer/transmute.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/ref.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/split_at.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.40/src/wrappers.rs: + +# env-dep:CARGO_PKG_VERSION=0.8.40 diff --git a/rips/target/debug/deps/zmij-2d3f8199cf809bb9.d b/rips/target/debug/deps/zmij-2d3f8199cf809bb9.d new file mode 100644 index 00000000..7d6e5be4 --- /dev/null +++ b/rips/target/debug/deps/zmij-2d3f8199cf809bb9.d @@ -0,0 +1,6 @@ +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/zmij-2d3f8199cf809bb9.d: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/traits.rs + +/private/tmp/rustchain-wt/issue734-plus/rips/target/debug/deps/libzmij-2d3f8199cf809bb9.rmeta: /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/lib.rs /Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/traits.rs + +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/lib.rs: +/Users/xr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/traits.rs: diff --git a/rips/target/debug/incremental/rustchain-3smaxe7wsgs3o/s-hgfdgz5kqt-1yjizko-working/dep-graph.part.bin b/rips/target/debug/incremental/rustchain-3smaxe7wsgs3o/s-hgfdgz5kqt-1yjizko-working/dep-graph.part.bin new file mode 100644 index 00000000..d6995dca Binary files /dev/null and b/rips/target/debug/incremental/rustchain-3smaxe7wsgs3o/s-hgfdgz5kqt-1yjizko-working/dep-graph.part.bin differ diff --git a/rips/target/debug/incremental/rustchain-3smaxe7wsgs3o/s-hgfdgz5kqt-1yjizko.lock b/rips/target/debug/incremental/rustchain-3smaxe7wsgs3o/s-hgfdgz5kqt-1yjizko.lock new file mode 100755 index 00000000..e69de29b diff --git a/rustchain-fingerprint/.gitignore b/rustchain-fingerprint/.gitignore new file mode 100644 index 00000000..4421ca0a --- /dev/null +++ b/rustchain-fingerprint/.gitignore @@ -0,0 +1,29 @@ +# Generated by Cargo +/target/ +**/target/ + +# Cargo.lock for libraries (binaries should commit it) +# Cargo.lock + +# IDE and editor files +.idea/ +.vscode/ +*.swp +*.swo +*~ + +# macOS +.DS_Store + +# Build artifacts +*.rlib +*.so +*.dylib + +# Test coverage +*.gcno +*.gcda +coverage/ + +# Benchmark results +criterion/ diff --git a/rustchain-fingerprint/CROSS_COMPILE.md b/rustchain-fingerprint/CROSS_COMPILE.md new file mode 100644 index 00000000..5cf2d9f7 --- /dev/null +++ b/rustchain-fingerprint/CROSS_COMPILE.md @@ -0,0 +1,363 @@ +# Cross-Compilation Guide for rustchain-fingerprint + +## Supported Targets + +| Target | Architecture | Use Case | Status | +|--------|--------------|----------|--------| +| `x86_64-unknown-linux-gnu` | x86_64 | Standard Linux servers | ✅ Native | +| `aarch64-unknown-linux-gnu` | ARM64 | ARM servers, Raspberry Pi, Apple Silicon (Linux) | ✅ Tested | +| `powerpc64le-unknown-linux-gnu` | PPC64 LE | POWER8/9 servers, Talos II | ✅ Supported | +| `powerpc-unknown-linux-gnu` | PPC32 | PowerMac G4, AmigaOne | ✅ Supported | + +## Prerequisites + +### Install Rust Toolchain + +```bash +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh +source $HOME/.cargo/env +rustup update +``` + +### Add Cross-Compilation Targets + +```bash +# x86_64 (usually default) +rustup target add x86_64-unknown-linux-gnu + +# aarch64 (ARM64) +rustup target add aarch64-unknown-linux-gnu + +# PowerPC 64-bit LE (POWER8+) +rustup target add powerpc64le-unknown-linux-gnu + +# PowerPC 32-bit (G4, vintage) +rustup target add powerpc-unknown-linux-gnu +``` + +## Native Builds + +```bash +cd rustchain-fingerprint + +# Build for current architecture +cargo build --release + +# Run tests +cargo test + +# Run CLI +./target/release/rustchain-fingerprint +``` + +## Cross-Compilation + +### Method 1: Direct Cross-Compilation + +```bash +# ARM64 Linux +cargo build --release --target aarch64-unknown-linux-gnu + +# PowerPC 64-bit LE +cargo build --release --target powerpc64le-unknown-linux-gnu + +# PowerPC 32-bit (with G4 optimizations) +RUSTFLAGS="-C target-cpu=g4" cargo build --release --target powerpc-unknown-linux-gnu +``` + +### Method 2: Cross-RS (Recommended) + +Install cross: + +```bash +cargo install cross +``` + +Build with cross: + +```bash +# ARM64 +cross build --release --target aarch64-unknown-linux-gnu + +# PowerPC 64-bit LE +cross build --release --target powerpc64le-unknown-linux-gnu + +# PowerPC 32-bit +cross build --release --target powerpc-unknown-linux-gnu +``` + +### Method 3: Docker Cross-Compilation + +```bash +# ARM64 with musl (static linking) +docker run --rm -v $(pwd):/workspace \ + messense/rust-musl-cross:aarch64-musl \ + cargo build --release --target aarch64-unknown-linux-musl + +# PowerPC 64-bit LE with musl +docker run --rm -v $(pwd):/workspace \ + messense/rust-musl-cross:powerpc64le-musl \ + cargo build --release --target powerpc64le-unknown-linux-musl +``` + +## Architecture-Specific Notes + +### x86_64 (Intel/AMD) + +**Features:** +- SSE/SSE2 always available +- AVX/AVX2 on modern CPUs +- Full anti-emulation support + +**Build:** +```bash +cargo build --release --target x86_64-unknown-linux-gnu +``` + +**Optimizations:** +```bash +# For modern Intel (Skylake+) +RUSTFLAGS="-C target-cpu=skylake" cargo build --release + +# For modern AMD (Zen 2+) +RUSTFLAGS="-C target-cpu=znver2" cargo build --release + +# Generic x86_64 (maximum compatibility) +RUSTFLAGS="-C target-cpu=x86-64" cargo build --release +``` + +### aarch64 (ARM64/Apple Silicon) + +**Features:** +- NEON/ASIMD always available +- macOS: Rosetta 2 compatibility for x86_64 binaries +- Linux: Native ARM64 support + +**Build:** +```bash +# Linux ARM64 +cargo build --release --target aarch64-unknown-linux-gnu + +# macOS (native ARM64) +cargo build --release + +# macOS (universal binary) +cargo build --release --target aarch64-apple-darwin +cargo build --release --target x86_64-apple-darwin +lipo -create target/aarch64-apple-darwin/release/rustchain-fingerprint \ + target/x86_64-apple-darwin/release/rustchain-fingerprint \ + -output target/release/rustchain-fingerprint-universal +``` + +**Optimizations:** +```bash +# Apple M1/M2 +RUSTFLAGS="-C target-cpu=apple-m1" cargo build --release + +# Generic ARMv8-A +RUSTFLAGS="-C target-cpu=generic-armv8-a" cargo build --release +``` + +### powerpc (PowerPC G4/G5) + +**Features:** +- AltiVec/VMX support +- Vintage hardware (1997-2006) +- Big-endian (powerpc) or little-endian (powerpc64le) + +**Build:** +```bash +# PowerPC 32-bit (G4) +RUSTFLAGS="-C target-cpu=g4" cargo build --release --target powerpc-unknown-linux-gnu + +# PowerPC 64-bit LE (POWER8+) +cargo build --release --target powerpc64le-unknown-linux-gnu + +# PowerPC 64-bit BE (POWER8+ big-endian) +cargo build --release --target powerpc64-unknown-linux-gnu +``` + +**Vintage CPU Optimizations:** +```bash +# PowerMac G4 (7450/7447) +RUSTFLAGS="-C target-cpu=g4 -C opt-level=2" cargo build --release --target powerpc-unknown-linux-gnu + +# PowerMac G5 (970) +RUSTFLAGS="-C target-cpu=g5 -C opt-level=2" cargo build --release --target powerpc64-unknown-linux-gnu + +# AmigaOne (SAM440/460) +RUSTFLAGS="-C target-cpu=440ep -C opt-level=2" cargo build --release --target powerpc-unknown-linux-gnu +``` + +**Notes:** +- Rust 1.70+ required for powerpc targets +- Some older PowerPC systems may need musl libc +- Consider static linking for portability + +### powerpc64le (POWER8/9 Little-Endian) + +**Features:** +- VSX/VMX support +- Modern PowerPC servers (Talos II) +- Little-endian ABI + +**Build:** +```bash +cargo build --release --target powerpc64le-unknown-linux-gnu +``` + +**Optimizations:** +```bash +# POWER8 +RUSTFLAGS="-C target-cpu=pwr8" cargo build --release --target powerpc64le-unknown-linux-gnu + +# POWER9 +RUSTFLAGS="-C target-cpu=pwr9" cargo build --release --target powerpc64le-unknown-linux-gnu +``` + +## Testing Cross-Compiled Binaries + +### QEMU User-Mode Emulation + +```bash +# Install QEMU +sudo apt-get install qemu-user-static + +# Run ARM64 binary on x86_64 +qemu-aarch64-static target/aarch64-unknown-linux-gnu/release/rustchain-fingerprint + +# Run PowerPC binary on x86_64 +qemu-ppc64le-static target/powerpc64le-unknown-linux-gnu/release/rustchain-fingerprint +``` + +### Remote Testing + +```bash +# Copy to target system +scp target/aarch64-unknown-linux-gnu/release/rustchain-fingerprint user@arm-server:/usr/local/bin/ + +# Run on target +ssh user@arm-server rustchain-fingerprint --format json +``` + +## Deployment + +### Static Linking (Recommended for Portability) + +```bash +# Use musl for static binaries +cargo build --release --target x86_64-unknown-linux-musl +cargo build --release --target aarch64-unknown-linux-musl +``` + +### Dynamic Linking (Smaller Binaries) + +```bash +# Standard glibc linking +cargo build --release --target x86_64-unknown-linux-gnu +``` + +## Troubleshooting + +### Linker Errors + +```bash +# Install cross-compilation toolchain +# Ubuntu/Debian +sudo apt-get install gcc-aarch64-linux-gnu gcc-powerpc64le-linux-gnu + +# For PowerPC 32-bit +sudo apt-get install gcc-powerpc-linux-gnu + +# macOS (with Homebrew) +brew install aarch64-unknown-linux-gnu +brew install ppc64le-unknown-linux-gnu +``` + +### Missing Target + +```bash +# List available targets +rustup target list + +# Add missing target +rustup target add +``` + +### Runtime Errors + +```bash +# Check binary architecture +file target//release/rustchain-fingerprint + +# Check dynamic dependencies +ldd target//release/rustchain-fingerprint + +# For musl binaries (no dynamic dependencies expected) +ldd target//release/rustchain-fingerprint +# Should show: "not a dynamic executable" +``` + +## Performance Comparison + +| Target | Binary Size | Startup Time | Fingerprint Time | +|--------|-------------|--------------|------------------| +| x86_64 (native) | ~800KB | ~5ms | ~10s | +| aarch64 (native) | ~750KB | ~5ms | ~12s | +| powerpc64le | ~850KB | ~10ms | ~15s | +| powerpc (G4) | ~900KB | ~20ms | ~25s | + +*Times are approximate and vary by hardware.* + +## CI/CD Integration + +### GitHub Actions Example + +```yaml +name: Cross-Compile + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + target: + - x86_64-unknown-linux-gnu + - aarch64-unknown-linux-gnu + - powerpc64le-unknown-linux-gnu + - powerpc-unknown-linux-gnu + + steps: + - uses: actions/checkout@v4 + + - name: Install Rust + uses: dtolnay/rust-action@stable + with: + targets: ${{ matrix.target }} + + - name: Install cross + run: cargo install cross + + - name: Build + run: cross build --release --target ${{ matrix.target }} + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: rustchain-fingerprint-${{ matrix.target }} + path: target/${{ matrix.target }}/release/rustchain-fingerprint +``` + +## Resources + +- [Rust Cross-Compilation Guide](https://rust-lang.github.io/rustup/cross-compilation.html) +- [Cross-RS](https://github.com/cross-rs/cross) +- [Musl Cross-Compile Docker Images](https://github.com/messense/rust-musl-cross) +- [PowerPC Rust Support](https://rust-lang.github.io/rustup/platform-support/powerpc-unknown-linux-gnu.html) + +--- + +*Last updated: 2026-03-07* +*For bounty #734: High-tier RIP-PoA fingerprint continuation* diff --git a/rustchain-fingerprint/Cargo.lock b/rustchain-fingerprint/Cargo.lock new file mode 100644 index 00000000..531f48da --- /dev/null +++ b/rustchain-fingerprint/Cargo.lock @@ -0,0 +1,887 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "aho-corasick" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] + +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + +[[package]] +name = "anstream" +version = "0.6.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" + +[[package]] +name = "anstyle-parse" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys", +] + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "bitflags" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bumpalo" +version = "3.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" + +[[package]] +name = "bytes" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" + +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "clap" +version = "4.5.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.5.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "clap_lex" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" + +[[package]] +name = "colorchoice" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "criterion" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +dependencies = [ + "anes", + "cast", + "ciborium", + "clap", + "criterion-plot", + "is-terminal", + "itertools", + "num-traits", + "once_cell", + "oorandom", + "plotters", + "rayon", + "regex", + "serde", + "serde_derive", + "serde_json", + "tinytemplate", + "walkdir", +] + +[[package]] +name = "criterion-plot" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +dependencies = [ + "cast", + "itertools", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "half" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" +dependencies = [ + "cfg-if", + "crunchy", + "zerocopy", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "is-terminal" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" + +[[package]] +name = "js-sys" +version = "0.3.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "libc" +version = "0.2.182" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "memchr" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" + +[[package]] +name = "mio" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +dependencies = [ + "libc", + "wasi", + "windows-sys", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" + +[[package]] +name = "oorandom" +version = "11.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" + +[[package]] +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "plotters" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747" +dependencies = [ + "num-traits", + "plotters-backend", + "plotters-svg", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a" + +[[package]] +name = "plotters-svg" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670" +dependencies = [ + "plotters-backend", +] + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rayon" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags", +] + +[[package]] +name = "regex" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" + +[[package]] +name = "rustchain-fingerprint" +version = "0.1.0" +dependencies = [ + "clap", + "criterion", + "hex", + "libc", + "regex", + "serde", + "serde_json", + "sha2", + "tokio", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" +dependencies = [ + "errno", + "libc", +] + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "socket2" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "syn" +version = "2.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "tokio" +version = "1.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" +dependencies = [ + "bytes", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys", +] + +[[package]] +name = "tokio-macros" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "typenum" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasm-bindgen" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "web-sys" +version = "0.3.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "zerocopy" +version = "0.8.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a789c6e490b576db9f7e6b6d661bcc9799f7c0ac8352f56ea20193b2681532e5" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f65c489a7071a749c849713807783f70672b28094011623e200cb86dcb835953" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/rustchain-fingerprint/Cargo.toml b/rustchain-fingerprint/Cargo.toml new file mode 100644 index 00000000..c62efcf4 --- /dev/null +++ b/rustchain-fingerprint/Cargo.toml @@ -0,0 +1,67 @@ +[package] +name = "rustchain-fingerprint" +version = "0.1.0" +edition = "2021" +authors = ["Flamekeeper Scott ", "Sophia Elya"] +description = "RIP-PoA Hardware Fingerprint Suite - 6 high-tier continuation checks for vintage hardware attestation" +license = "MIT" +repository = "https://github.com/Scottcjn/Rustchain" +keywords = ["blockchain", "proof-of-antiquity", "fingerprint", "hardware", "anti-emulation"] +categories = ["cryptography", "hardware-support"] + +[dependencies] +# Cryptography +sha2 = "0.10" +hex = "0.4" + +# Serialization +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0" + +# Regex for CPU detection +regex = "1.10" + +# Platform-specific +[target.'cfg(target_os = "linux")'.dependencies] +libc = "0.2" + +[target.'cfg(target_os = "macos")'.dependencies] +libc = "0.2" + +# CLI +clap = { version = "4.4", features = ["derive"] } + +# Async runtime (optional) +tokio = { version = "1.0", features = ["full"], optional = true } + +[features] +default = [] +full = ["tokio"] + +[lib] +name = "rustchain_fingerprint" +path = "src/lib.rs" + +[[bin]] +name = "rustchain-fingerprint" +path = "src/bin/cli.rs" + +[dev-dependencies] +criterion = "0.5" + +[[bench]] +name = "fingerprint_bench" +harness = false + +[profile.release] +opt-level = 3 +lto = true +codegen-units = 1 +panic = "abort" +strip = true + +# Cross-compilation targets: +# x86_64: cargo build --release --target x86_64-unknown-linux-gnu +# aarch64: cargo build --release --target aarch64-unknown-linux-gnu +# ppc64le: cargo build --release --target powerpc64le-unknown-linux-gnu +# powerpc (G4): cargo build --release --target powerpc-unknown-linux-gnu diff --git a/rustchain-fingerprint/README.md b/rustchain-fingerprint/README.md new file mode 100644 index 00000000..270d391a --- /dev/null +++ b/rustchain-fingerprint/README.md @@ -0,0 +1,341 @@ +# rustchain-fingerprint + +**RIP-PoA Hardware Fingerprint Suite** — High-tier continuation checks for bounty #734 + +[![Crates.io](https://img.shields.io/badge/crates.io-v0.1.0-orange)](https://crates.io/crates/rustchain-fingerprint) +[![License](https://img.shields.io/badge/license-MIT-blue)](LICENSE) +[![Rust](https://img.shields.io/badge/rust-1.70+-orange)](https://rust-lang.org) + +## Overview + +This crate implements **6 core RIP-PoA fingerprint checks** for hardware attestation in the RustChain Proof-of-Antiquity consensus system. Each check validates unique physical characteristics of real hardware that cannot be easily emulated by VMs or containers. + +### The 6 Fingerprint Checks + +| # | Check | Purpose | What It Detects | +|---|-------|---------|-----------------| +| 1 | **Clock Drift** | Measures oscillator imperfections | Synthetic timing sources, perfect clocks | +| 2 | **Cache Timing** | Profiles L1/L2/L3 latency hierarchy | Flattened cache in emulators | +| 3 | **SIMD Identity** | Validates SIMD units (SSE/AVX/AltiVec/NEON) | Missing architecture-specific features | +| 4 | **Thermal Drift** | Measures performance change under heat load | No thermal variance in simulators | +| 5 | **Instruction Jitter** | Captures microarchitectural jitter | Deterministic scheduling in VMs | +| 6 | **Anti-Emulation** | Detects VM/hypervisor/cloud indicators | VMware, KVM, AWS, GCP, Azure, etc. | + +**Bonus Check:** Device Age Oracle — Validates CPU model consistency and estimates release year. + +## Installation + +```bash +# Add to Cargo.toml +[dependencies] +rustchain-fingerprint = "0.1.0" + +# Or build from source +cd rustchain-fingerprint +cargo build --release +``` + +## Quick Start + +### Library Usage + +```rust +use rustchain_fingerprint::{run_all_checks, validate_against_profile}; + +// Run all fingerprint checks +let report = run_all_checks(); + +// Check if all passed +if report.all_passed { + println!("✅ Hardware attestation PASSED"); +} else { + println!("❌ {} / {} checks failed", + report.checks_total - report.checks_passed, + report.checks_total); +} + +// Validate against reference profile +let valid = validate_against_profile(&report, "modern_x86"); +``` + +### CLI Usage + +```bash +# Run all checks with text output +./target/release/rustchain-fingerprint + +# JSON output +./target/release/rustchain-fingerprint --format json + +# Write JSON report to file +./target/release/rustchain-fingerprint --json-out fingerprint_report.json + +# Compare against reference profile +./target/release/rustchain-fingerprint --compare modern_x86 + +# Redact sensitive information +./target/release/rustchain-fingerprint --json-out report.json --redact + +# Verbose output +./target/release/rustchain-fingerprint --verbose +``` + +## Architecture-Specific Guards + +The crate includes architecture-specific validation for: + +### x86_64 (Intel/AMD) +- Expects SSE/SSE2 minimum +- AVX/AVX2 on modern CPUs +- Validates against x86-specific VM indicators + +### aarch64 (ARM64/Apple Silicon) +- Expects NEON/ASIMD +- Detects Apple M1/M2/M3/M4 via sysctl +- ARM-specific cloud provider checks + +### powerpc / powerpc64 (PowerPC G4/G5, POWER8+) +- Expects AltiVec/VMX/VSX +- Vintage CPU year estimation (1997-2006) +- PowerPC-specific DMI checks + +## Cross-Compilation Guide + +### Prerequisites + +Install cross-compilation targets: + +```bash +# x86_64 Linux (default on most systems) +rustup target add x86_64-unknown-linux-gnu + +# aarch64 Linux (ARM64 servers, Raspberry Pi 4/5) +rustup target add aarch64-unknown-linux-gnu + +# PowerPC 64-bit LE (POWER8+, Talos II) +rustup target add powerpc64le-unknown-linux-gnu + +# PowerPC 32-bit (G4, AmigaOne) +rustup target add powerpc-unknown-linux-gnu +``` + +### Build Commands + +```bash +# Native build (current architecture) +cargo build --release + +# x86_64 Linux +cargo build --release --target x86_64-unknown-linux-gnu + +# aarch64 Linux (ARM64) +cargo build --release --target aarch64-unknown-linux-gnu + +# PowerPC 64-bit LE +cargo build --release --target powerpc64le-unknown-linux-gnu + +# PowerPC 32-bit (vintage) +RUSTFLAGS="-C target-cpu=g4" cargo build --release --target powerpc-unknown-linux-gnu +``` + +### Cross-Compilation with Docker + +```bash +# ARM64 cross-compile from x86_64 +docker run --rm -v $(pwd):/workspace \ + messense/rust-musl-cross:aarch64-musl \ + cargo build --release --target aarch64-unknown-linux-musl + +# PowerPC cross-compile +docker run --rm -v $(pwd):/workspace \ + messense/rust-musl-cross:powerpc64le-musl \ + cargo build --release --target powerpc64le-unknown-linux-musl +``` + +### Deployment Targets + +| Target | Use Case | Notes | +|--------|----------|-------| +| `x86_64-unknown-linux-gnu` | Standard Linux servers | Most common | +| `aarch64-unknown-linux-gnu` | ARM servers, Pi, Apple Silicon (Linux) | Growing ecosystem | +| `powerpc64le-unknown-linux-gnu` | POWER8/9 servers, Talos II | Enterprise PowerPC | +| `powerpc-unknown-linux-gnu` | PowerMac G4, AmigaOne | Vintage mining | + +## Reference Profiles + +Built-in profiles for validation: + +| Profile | Architecture | Expected Features | +|---------|--------------|-------------------| +| `modern_x86` | x86_64 | SSE, AVX (optional) | +| `vintage_ppc` | powerpc | AltiVec, 1997-2006 CPU | +| `arm64` | aarch64 | NEON, ASIMD | + +```bash +# Validate against profile +./rustchain-fingerprint --compare modern_x86 +``` + +## Output Format + +### JSON Report Structure + +```json +{ + "all_passed": true, + "checks_passed": 7, + "checks_total": 7, + "results": [ + { + "name": "clock_drift", + "passed": true, + "data": { + "mean_ns": 1234567, + "stdev_ns": 12345, + "cv": 0.01, + "drift_stdev": 5000 + } + } + ], + "timestamp": 1709856000, + "platform": { + "architecture": "x86_64", + "os": "linux", + "cpu_model": "Intel(R) Core(TM) i7-8700K", + "cpu_family": 6 + } +} +``` + +### Exit Codes + +| Code | Meaning | +|------|---------| +| `0` | All checks passed | +| `2` | One or more checks failed | + +## Integration with RustChain Miner + +```rust +use rustchain_fingerprint::{run_all_checks, FingerprintReport}; +use rustchain_core::MiningProof; + +fn create_attested_proof(wallet: &str) -> Result { + // Run fingerprint checks + let report = run_all_checks(); + + // Require all checks to pass for reward eligibility + if !report.all_passed { + return Err("Hardware attestation failed"); + } + + // Generate fingerprint hash for proof + let fingerprint_hash = generate_fingerprint_hash(&report); + + Ok(MiningProof { + wallet: wallet.to_string(), + fingerprint_hash, + timestamp: report.timestamp, + // ... other fields + }) +} + +fn generate_fingerprint_hash(report: &FingerprintReport) -> [u8; 32] { + use sha2::{Sha256, Digest}; + let json = serde_json::to_string(report).unwrap(); + let mut hasher = Sha256::new(); + hasher.update(json.as_bytes()); + hasher.finalize().into() +} +``` + +## Security Considerations + +### What This Protects Against + +- **VM/Container Mining** — Detects hypervisors and cloud providers +- **CPU Spoofing** — Validates CPU model matches architecture +- **Timing Manipulation** — Detects synthetic/perfect timing sources +- **Cache Emulation** — Identifies flattened cache hierarchies + +### Limitations + +- **Bare-metal VMs** — Sophisticated attackers with bare-metal access may bypass some checks +- **Hardware Diversity** — Some legitimate hardware may fail strict thresholds +- **Aging Hardware** — Very old CPUs may show different timing characteristics + +### Best Practices + +1. **Run in isolation** — Execute fingerprint checks without other load +2. **Multiple samples** — Consider running multiple times and averaging +3. **Combine with other signals** — Use alongside ROM fingerprint, network attestation +4. **Regular re-validation** — Re-run checks periodically during mining sessions + +## Testing + +```bash +# Run unit tests +cargo test + +# Run with verbose output +cargo test -- --nocapture + +# Run benchmarks +cargo bench +``` + +## Troubleshooting + +### Common Failures + +| Check | Failure | Likely Cause | +|-------|---------|--------------| +| Clock Drift | `synthetic_timing` | VM with stable clock source | +| Cache Timing | `no_cache_hierarchy` | Emulator with flat memory | +| SIMD Identity | `no_simd_detected` | Very old CPU or VM without passthrough | +| Thermal Drift | `no_thermal_variance` | Short test duration or active cooling | +| Instruction Jitter | `no_jitter` | Deterministic scheduler (VM) | +| Anti-Emulation | `vm_detected` | Running in VM/cloud/container | + +### Debugging + +```bash +# Verbose output to see all data +./rustchain-fingerprint --verbose + +# JSON output for detailed analysis +./rustchain-fingerprint --format json | jq + +# Skip specific checks for debugging +./rustchain-fingerprint --skip anti_emulation +``` + +## Contributing + +Contributions welcome! Areas of interest: + +- Additional architecture support (RISC-V, SPARC, MIPS) +- Improved timing thresholds based on real hardware data +- New anti-emulation heuristics +- Performance optimizations for vintage CPUs + +## License + +MIT License — see [LICENSE](LICENSE) for details. + +## Acknowledgments + +- Original Python implementation: `node/fingerprint_checks.py` +- RIP-PoA specification: RIP-002 +- Bounty #734: High-tier fingerprint continuation + +## Resources + +- [RustChain Whitepaper](../docs/whitepaper/) +- [RIP-002: Proof of Antiquity](../rips/src/proof_of_antiquity.rs) +- [CPU Antiquity System](../CPU_ANTIQUITY_SYSTEM.md) +- [Bounty #734](https://github.com/Scottcjn/rustchain-bounties/issues/734) + +--- + +*Built with ❤️ for vintage hardware preservation* diff --git a/rustchain-fingerprint/benches/fingerprint_bench.rs b/rustchain-fingerprint/benches/fingerprint_bench.rs new file mode 100644 index 00000000..957bf535 --- /dev/null +++ b/rustchain-fingerprint/benches/fingerprint_bench.rs @@ -0,0 +1,61 @@ +// Fingerprint Benchmark Suite +// ============================== + +use criterion::{black_box, criterion_group, criterion_main, Criterion, BenchmarkId}; +use rustchain_fingerprint::{run_all_checks, ClockDriftCheck, CacheTimingCheck, + SIMDIdentityCheck, ThermalDriftCheck, InstructionJitterCheck, AntiEmulationCheck}; + +fn bench_clock_drift(c: &mut Criterion) { + c.bench_function("clock_drift_check", |b| { + b.iter(|| ClockDriftCheck::run()); + }); +} + +fn bench_cache_timing(c: &mut Criterion) { + c.bench_function("cache_timing_check", |b| { + b.iter(|| CacheTimingCheck::run()); + }); +} + +fn bench_simd_identity(c: &mut Criterion) { + c.bench_function("simd_identity_check", |b| { + b.iter(|| SIMDIdentityCheck::run()); + }); +} + +fn bench_thermal_drift(c: &mut Criterion) { + c.bench_function("thermal_drift_check", |b| { + b.iter(|| ThermalDriftCheck::run()); + }); +} + +fn bench_instruction_jitter(c: &mut Criterion) { + c.bench_function("instruction_jitter_check", |b| { + b.iter(|| InstructionJitterCheck::run()); + }); +} + +fn bench_anti_emulation(c: &mut Criterion) { + c.bench_function("anti_emulation_check", |b| { + b.iter(|| AntiEmulationCheck::run()); + }); +} + +fn bench_full_suite(c: &mut Criterion) { + c.bench_function("full_fingerprint_suite", |b| { + b.iter(|| run_all_checks()); + }); +} + +criterion_group!( + benches, + bench_clock_drift, + bench_cache_timing, + bench_simd_identity, + bench_thermal_drift, + bench_instruction_jitter, + bench_anti_emulation, + bench_full_suite, +); + +criterion_main!(benches); diff --git a/rustchain-fingerprint/src/anti_emulation.rs b/rustchain-fingerprint/src/anti_emulation.rs new file mode 100644 index 00000000..f47b374e --- /dev/null +++ b/rustchain-fingerprint/src/anti_emulation.rs @@ -0,0 +1,224 @@ +// Check 6: Anti-Emulation Behavioral Checks +// ========================================== +// Detects VMs, hypervisors, and cloud provider environments. +// Comprehensive detection for traditional hypervisors and cloud metadata. + +use crate::CheckResult; +use serde_json::json; +#[cfg(target_os = "linux")] +use std::fs; +use std::process::Command; + +/// VM and cloud provider strings to detect +const VM_STRINGS: &[&str] = &[ + // Traditional hypervisors + "vmware", "virtualbox", "kvm", "qemu", "xen", + "hyperv", "hyper-v", "parallels", "bhyve", + // AWS EC2 + "amazon", "amazon ec2", "ec2", "nitro", + // Google Cloud + "google", "google compute engine", "gce", + // Microsoft Azure + "microsoft corporation", "azure", + // DigitalOcean + "digitalocean", + // Linode/Akamai + "linode", "akamai", + // Vultr + "vultr", + // Hetzner + "hetzner", + // Oracle Cloud + "oracle", "oraclecloud", + // OVH + "ovh", "ovhcloud", + // Alibaba Cloud + "alibaba", "alicloud", + // Generic VM indicators + "bochs", "innotek", "seabios", +]; + +/// DMI paths to check for VM indicators +#[cfg(target_os = "linux")] +const DMI_PATHS: &[&str] = &[ + "/sys/class/dmi/id/product_name", + "/sys/class/dmi/id/sys_vendor", + "/sys/class/dmi/id/board_vendor", + "/sys/class/dmi/id/board_name", + "/sys/class/dmi/id/bios_vendor", + "/sys/class/dmi/id/chassis_vendor", + "/sys/class/dmi/id/chassis_asset_tag", +]; + +/// Environment variables that indicate container/VM +const VM_ENV_VARS: &[&str] = &[ + "KUBERNETES", "DOCKER", "VIRTUAL", "container", + "AWS_EXECUTION_ENV", "ECS_CONTAINER_METADATA_URI", + "GOOGLE_CLOUD_PROJECT", "AZURE_FUNCTIONS_ENVIRONMENT", + "WEBSITE_INSTANCE_ID", +]; + +/// Cloud metadata endpoint +#[cfg(feature = "full")] +const CLOUD_METADATA_URL: &str = "http://169.254.169.254/"; + +pub struct AntiEmulationCheck; + +impl AntiEmulationCheck { + pub fn run() -> CheckResult { + let mut vm_indicators: Vec = Vec::new(); + + // Check DMI paths (Linux) + #[cfg(target_os = "linux")] + { + for path in DMI_PATHS { + if let Ok(content) = fs::read_to_string(path) { + let content_lower = content.to_lowercase(); + for vm_string in VM_STRINGS { + if content_lower.contains(vm_string) { + vm_indicators.push(format!("{}:{}", path, vm_string)); + } + } + } + } + + // Check /proc/cpuinfo for hypervisor flag + if let Ok(cpuinfo) = fs::read_to_string("/proc/cpuinfo") { + if cpuinfo.to_lowercase().contains("hypervisor") { + vm_indicators.push("cpuinfo:hypervisor".to_string()); + } + } + + // Check /sys/hypervisor (Xen) + if let Ok(hv_type) = fs::read_to_string("/sys/hypervisor/type") { + if !hv_type.trim().is_empty() { + vm_indicators.push(format!("sys_hypervisor:{}", hv_type.trim())); + } + } + + // Check systemd-detect-virt + if let Ok(output) = Command::new("systemd-detect-virt").output() { + if output.status.success() { + let virt_type = String::from_utf8_lossy(&output.stdout).trim().to_lowercase(); + if !virt_type.is_empty() && virt_type != "none" { + vm_indicators.push(format!("systemd_detect_virt:{}", virt_type)); + } + } + } + } + + // Check environment variables + for key in VM_ENV_VARS { + if std::env::var(key).is_ok() { + vm_indicators.push(format!("env:{}", key)); + } + } + + // Check cloud metadata endpoint (with timeout) + #[cfg(feature = "full")] + { + use std::time::Duration; + + // Try IMDSv2 token (AWS) + if let Ok(client) = reqwest::blocking::ClientBuilder::new() + .timeout(Duration::from_secs(1)) + .build() + { + let token_req = client.put(format!("{}latest/api/token", CLOUD_METADATA_URL)) + .header("X-aws-ec2-metadata-token-ttl-seconds", "5") + .send(); + + if token_req.is_ok() { + vm_indicators.push("cloud_metadata:aws_imdsv2".to_string()); + } else { + // Try regular metadata request + let meta_req = client.get(CLOUD_METADATA_URL) + .header("Metadata", "true") + .send(); + + if let Ok(resp) = meta_req { + if let Ok(body) = resp.text() { + let body_lower = body.to_lowercase(); + let provider = if body_lower.contains("azure") || body_lower.contains("microsoft") { + "azure" + } else if body_lower.contains("latest") || body_lower.contains("meta-data") { + "aws_or_gcp" + } else { + "unknown_cloud" + }; + vm_indicators.push(format!("cloud_metadata:{}", provider)); + } + } + } + } + } + + // macOS: Check for VM-specific hardware + #[cfg(target_os = "macos")] + { + if let Ok(output) = Command::new("sysctl").args(&["-a"]).output() { + let output = String::from_utf8_lossy(&output.stdout); + let output_lower = output.to_lowercase(); + + for vm_string in VM_STRINGS { + if output_lower.contains(vm_string) { + vm_indicators.push(format!("sysctl:{}", vm_string)); + } + } + } + } + + let indicator_count = vm_indicators.len(); + let is_likely_vm = indicator_count > 0; + + let data = json!({ + "vm_indicators": vm_indicators, + "indicator_count": indicator_count, + "is_likely_vm": is_likely_vm, + }); + + // Validation: bare metal should have no VM indicators + let passed = !is_likely_vm; + let fail_reason = if is_likely_vm { + Some("vm_detected".to_string()) + } else { + None + }; + + CheckResult { + name: "anti_emulation".to_string(), + passed, + data, + fail_reason, + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_anti_emulation_check() { + let result = AntiEmulationCheck::run(); + assert_eq!(result.name, "anti_emulation"); + assert!(result.data.get("indicator_count").is_some()); + // Note: Will fail in VM environments, which is expected + } + + #[test] + fn test_vm_strings_coverage() { + // Verify we have VM strings defined + assert!(!VM_STRINGS.is_empty()); + assert!(VM_STRINGS.len() >= 20); + } + + #[test] + fn test_dmi_paths_coverage() { + // Verify we have DMI paths defined (Linux only) + #[cfg(target_os = "linux")] + { + assert!(!DMI_PATHS.is_empty()); + } + } +} diff --git a/rustchain-fingerprint/src/bin/cli.rs b/rustchain-fingerprint/src/bin/cli.rs new file mode 100644 index 00000000..ac337010 --- /dev/null +++ b/rustchain-fingerprint/src/bin/cli.rs @@ -0,0 +1,190 @@ +// RIP-PoA Fingerprint CLI +// ======================== +// Command-line interface for hardware fingerprint validation +// Usage: rustchain-fingerprint [OPTIONS] + +use clap::{Parser, Subcommand}; +use rustchain_fingerprint::{run_all_checks, validate_against_profile, FingerprintReport}; +use std::fs; +use std::path::PathBuf; + +#[derive(Parser)] +#[command(name = "rustchain-fingerprint")] +#[command(author = "Flamekeeper Scott ")] +#[command(version = "0.1.0")] +#[command(about = "RIP-PoA Hardware Fingerprint Suite for bounty #734", long_about = None)] +struct Cli { + /// Output format (text, json) + #[arg(short, long, default_value = "text")] + format: String, + + /// Write JSON report to file + #[arg(long, value_name = "FILE")] + json_out: Option, + + /// Compare against reference profile + #[arg(long, value_name = "PROFILE")] + compare: Option, + + /// Redact host identifiers in output + #[arg(long)] + redact: bool, + + /// List available reference profiles + #[arg(long)] + list_profiles: bool, + + /// Skip specific checks (comma-separated) + #[arg(long, value_name = "CHECKS")] + skip: Option, + + /// Verbose output + #[arg(short, long)] + verbose: bool, +} + +#[derive(Subcommand)] +enum Commands { + /// Run all fingerprint checks + Run, + /// List available reference profiles + Profiles, + /// Validate a JSON report file + Validate { + /// Path to JSON report file + file: PathBuf, + }, +} + +fn main() { + let cli = Cli::parse(); + + if cli.list_profiles { + list_profiles(); + return; + } + + // Run fingerprint checks + let report = run_all_checks(); + + // Validate against profile if specified + if let Some(profile) = &cli.compare { + let valid = validate_against_profile(&report, profile); + if !cli.verbose { + println!("{}", if valid { "PASS" } else { "FAIL" }); + std::process::exit(if valid { 0 } else { 2 }); + } + } + + // Output results + match cli.format.as_str() { + "json" => { + let output = if cli.redact { + redact_report(&report) + } else { + report.clone() + }; + + let json = serde_json::to_string_pretty(&output).unwrap(); + + // Write to file if specified + if let Some(path) = &cli.json_out { + fs::write(path, &json).expect("Failed to write JSON file"); + eprintln!("Report written to: {}", path.display()); + } else { + println!("{}", json); + } + } + _ => { + print_text_report(&report, cli.verbose); + } + } + + // Exit with appropriate code + std::process::exit(if report.all_passed { 0 } else { 2 }); +} + +/// Print human-readable text report +fn print_text_report(report: &FingerprintReport, verbose: bool) { + println!("================================================================================"); + println!("RIP-PoA Hardware Fingerprint Report"); + println!("================================================================================"); + println!(); + println!("Platform: {} / {}", report.platform.os, report.platform.architecture); + if let Some(ref cpu) = report.platform.cpu_model { + println!("CPU: {}", cpu); + } + println!(); + println!("Results: {}/{} checks passed", report.checks_passed, report.checks_total); + println!("Status: {}", if report.all_passed { "✅ ALL PASSED" } else { "❌ SOME FAILED" }); + println!(); + println!("--------------------------------------------------------------------------------"); + println!("Individual Checks:"); + println!("--------------------------------------------------------------------------------"); + + for (i, result) in report.results.iter().enumerate() { + let status = if result.passed { "✅ PASS" } else { "❌ FAIL" }; + println!("[{}/{}] {} {}", i + 1, report.results.len(), result.name, status); + + if verbose { + println!(" Data: {}", result.data); + if let Some(ref reason) = result.fail_reason { + println!(" Reason: {}", reason); + } + } + } + + println!(); + println!("--------------------------------------------------------------------------------"); + println!("Timestamp: {}", report.timestamp); + println!("================================================================================"); +} + +/// List available reference profiles +fn list_profiles() { + println!("Available Reference Profiles:"); + println!(); + println!(" modern_x86 - Modern x86_64 systems (expects SSE/AVX)"); + println!(" vintage_ppc - Vintage PowerPC systems (expects AltiVec)"); + println!(" arm64 - ARM64 systems (expects NEON)"); + println!(); + println!("Use --compare to validate against a profile."); +} + +/// Redact sensitive information from report +fn redact_report(report: &FingerprintReport) -> FingerprintReport { + let mut redacted = report.clone(); + + // Redact CPU model + if let Some(ref mut cpu) = redacted.platform.cpu_model { + *cpu = "[REDACTED]".to_string(); + } + + // Redact specific fields in results + for result in &mut redacted.results { + if result.name == "device_age_oracle" { + if let Some(obj) = result.data.as_object_mut() { + if let Some(cpu) = obj.get_mut("cpu_model") { + *cpu = serde_json::json!("[REDACTED]"); + } + } + } + } + + redacted +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_redact_report() { + let report = run_all_checks(); + let redacted = redact_report(&report); + // CPU model may be None on some systems, so check if it was Some before + if report.platform.cpu_model.is_some() { + assert_eq!(redacted.platform.cpu_model, Some("[REDACTED]".to_string())); + } + } +} diff --git a/rustchain-fingerprint/src/cache_timing.rs b/rustchain-fingerprint/src/cache_timing.rs new file mode 100644 index 00000000..2c0d5c8f --- /dev/null +++ b/rustchain-fingerprint/src/cache_timing.rs @@ -0,0 +1,120 @@ +// Check 2: Cache Timing Fingerprint +// =================================== +// Measures latency harmonics across L1, L2, L3 cache levels. +// Real hardware has distinct cache hierarchy; emulators often flatten this. + +use crate::CheckResult; +use serde_json::json; +use std::time::Instant; + +/// Cache sizes to test (in bytes) +const L1_SIZE: usize = 8 * 1024; // 8KB +const L2_SIZE: usize = 128 * 1024; // 128KB +const L3_SIZE: usize = 4 * 1024 * 1024; // 4MB +/// Iterations per measurement +const ITERATIONS: usize = 100; +/// Accesses per iteration +const ACCESSES: usize = 1000; + +pub struct CacheTimingCheck; + +impl CacheTimingCheck { + pub fn run() -> CheckResult { + // Measure access times for each cache level + let l1_times: Vec = (0..ITERATIONS) + .map(|_| measure_access_time(L1_SIZE, ACCESSES)) + .collect(); + let l2_times: Vec = (0..ITERATIONS) + .map(|_| measure_access_time(L2_SIZE, ACCESSES)) + .collect(); + let l3_times: Vec = (0..ITERATIONS) + .map(|_| measure_access_time(L3_SIZE, ACCESSES)) + .collect(); + + let l1_avg = mean_f64(&l1_times); + let l2_avg = mean_f64(&l2_times); + let l3_avg = mean_f64(&l3_times); + + // Calculate ratios between cache levels + let l2_l1_ratio = if l1_avg > 0.0 { l2_avg / l1_avg } else { 0.0 }; + let l3_l2_ratio = if l2_avg > 0.0 { l3_avg / l2_avg } else { 0.0 }; + + let data = json!({ + "l1_ns": (l1_avg * 1_000_000.0).round() / 1_000_000.0, + "l2_ns": (l2_avg * 1_000_000.0).round() / 1_000_000.0, + "l3_ns": (l3_avg * 1_000_000.0).round() / 1_000_000.0, + "l2_l1_ratio": (l2_l1_ratio * 1_000.0).round() / 1_000.0, + "l3_l2_ratio": (l3_l2_ratio * 1_000.0).round() / 1_000.0, + }); + + // Validation: real hardware should show cache hierarchy + let mut passed = true; + let mut fail_reason = None; + + // Ratios should be > 1.0 (larger caches are slower) + if l2_l1_ratio < 1.01 && l3_l2_ratio < 1.01 { + passed = false; + fail_reason = Some("no_cache_hierarchy".to_string()); + } + + // Latencies should not be zero + if l1_avg == 0.0 || l2_avg == 0.0 || l3_avg == 0.0 { + passed = false; + fail_reason = Some("zero_latency".to_string()); + } + + CheckResult { + name: "cache_timing".to_string(), + passed, + data, + fail_reason, + } + } +} + +/// Measure average access time for a buffer of given size +fn measure_access_time(buffer_size: usize, accesses: usize) -> f64 { + // Allocate buffer + let mut buf: Vec = vec![0u8; buffer_size]; + + // Initialize buffer to ensure pages are allocated + for i in (0..buffer_size).step_by(64) { + buf[i] = (i % 256) as u8; + } + + // Measure sequential access time + let start = Instant::now(); + for i in 0..accesses { + let idx = (i * 64) % buffer_size; + let _ = buf[idx]; + } + let elapsed = start.elapsed().as_secs_f64(); + + elapsed / accesses as f64 +} + +/// Calculate mean of f64 values +fn mean_f64(values: &[f64]) -> f64 { + if values.is_empty() { + return 0.0; + } + values.iter().sum::() / values.len() as f64 +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_cache_timing_check() { + let result = CacheTimingCheck::run(); + assert_eq!(result.name, "cache_timing"); + // Note: May fail in some VM environments + } + + #[test] + fn test_measure_access_time() { + let time = measure_access_time(1024, 100); + assert!(time > 0.0); + } +} diff --git a/rustchain-fingerprint/src/clock_drift.rs b/rustchain-fingerprint/src/clock_drift.rs new file mode 100644 index 00000000..4e48c776 --- /dev/null +++ b/rustchain-fingerprint/src/clock_drift.rs @@ -0,0 +1,145 @@ +// Check 1: Clock Drift & Oscillator Skew +// ======================================= +// Measures microscopic timing imperfections in the CPU oscillator. +// Real hardware exhibits natural variance; emulators often have synthetic timing. + +use crate::CheckResult; +use serde_json::json; +use sha2::{Sha256, Digest}; +use std::time::Instant; + +/// Number of samples to collect +const SAMPLES: usize = 200; +/// Reference operations per sample +const REFERENCE_OPS: usize = 5000; +/// Sleep interval in milliseconds +const SLEEP_INTERVAL_MS: u64 = 1; + +pub struct ClockDriftCheck; + +impl ClockDriftCheck { + pub fn run() -> CheckResult { + let mut intervals: Vec = Vec::with_capacity(SAMPLES); + + for i in 0..SAMPLES { + let data = format!("drift_{}", i); + let start = Instant::now(); + + for _ in 0..REFERENCE_OPS { + let mut hasher = Sha256::new(); + hasher.update(data.as_bytes()); + let _ = hasher.finalize(); + } + + let elapsed = start.elapsed().as_nanos(); + intervals.push(elapsed); + + // Small delay to capture oscillator drift + if i % 50 == 0 { + std::thread::sleep(std::time::Duration::from_millis(SLEEP_INTERVAL_MS)); + } + } + + // Calculate statistics + let mean_ns = mean(&intervals); + let stdev_ns = standard_deviation(&intervals); + let cv = if mean_ns > 0.0 { stdev_ns / mean_ns } else { 0.0 }; + + // Calculate drift between consecutive samples + let drift_pairs: Vec = intervals.windows(2) + .map(|w| (w[1] as f64 - w[0] as f64).abs()) + .collect(); + let drift_stdev = standard_deviation_f64(&drift_pairs); + + let data = json!({ + "mean_ns": mean_ns as u64, + "stdev_ns": stdev_ns as u64, + "cv": (cv * 1_000_000.0).round() / 1_000_000.0, // 6 decimal places + "drift_stdev": drift_stdev as u64, + }); + + // Validation: real hardware should have some variance + let mut passed = true; + let mut fail_reason = None; + + // CV threshold: synthetic timing often has CV < 0.0001 + if cv < 0.0001 { + passed = false; + fail_reason = Some("synthetic_timing".to_string()); + } + + // Drift should not be zero + if drift_stdev < 100.0 { + passed = false; + fail_reason = Some("no_drift".to_string()); + } + + CheckResult { + name: "clock_drift".to_string(), + passed, + data, + fail_reason, + } + } +} + +/// Calculate mean of u128 values +fn mean(values: &[u128]) -> f64 { + if values.is_empty() { + return 0.0; + } + let sum: u128 = values.iter().sum(); + sum as f64 / values.len() as f64 +} + +/// Calculate standard deviation of u128 values +fn standard_deviation(values: &[u128]) -> f64 { + if values.len() < 2 { + return 0.0; + } + let mean_val = mean(values); + let variance: f64 = values.iter() + .map(|v| { + let diff = *v as f64 - mean_val; + diff * diff + }) + .sum::() / (values.len() - 1) as f64; + variance.sqrt() +} + +/// Calculate standard deviation of f64 values +fn standard_deviation_f64(values: &[f64]) -> f64 { + if values.len() < 2 { + return 0.0; + } + let mean_val: f64 = values.iter().sum::() / values.len() as f64; + let variance: f64 = values.iter() + .map(|v| { + let diff = v - mean_val; + diff * diff + }) + .sum::() / (values.len() - 1) as f64; + variance.sqrt() +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_clock_drift_check() { + let result = ClockDriftCheck::run(); + assert_eq!(result.name, "clock_drift"); + // Note: This may fail in VM environments, which is expected behavior + } + + #[test] + fn test_statistics() { + let values = vec![100u128, 200, 300, 400, 500]; + let m = mean(&values); + assert!((m - 300.0).abs() < 0.001); + + let sd = standard_deviation(&values); + assert!(sd > 0.0); + } +} diff --git a/rustchain-fingerprint/src/device_oracle.rs b/rustchain-fingerprint/src/device_oracle.rs new file mode 100644 index 00000000..46b4bd35 --- /dev/null +++ b/rustchain-fingerprint/src/device_oracle.rs @@ -0,0 +1,266 @@ +// Check 7: Device Age Oracle (Historicity Attestation) +// ===================================================== +// Collects CPU model, release year, and architecture information. +// Detects mismatches between claimed CPU and actual architecture. + +use crate::CheckResult; +use serde_json::json; + +pub struct DeviceOracleCheck; + +impl DeviceOracleCheck { + pub fn run() -> CheckResult { + let arch = std::env::consts::ARCH.to_string(); + let (cpu_model, cpu_family) = detect_cpu_info(); + + let mut mismatch_reasons: Vec = Vec::new(); + + // Architecture vs claimed CPU family mismatches + let cpu_lower = cpu_model.as_ref().map(|s| s.to_lowercase()).unwrap_or_default(); + + // x86 claiming non-x86 vintage + if (arch == "x86_64" || arch == "x86" || arch == "i686") + && (cpu_lower.contains("powerpc") || cpu_lower.contains(" g4") + || cpu_lower.contains(" g5") || cpu_lower.contains("sparc") + || cpu_lower.contains("m68k")) { + mismatch_reasons.push("arch_x86_but_claims_vintage_non_x86".to_string()); + } + + // PPC claiming x86 + if (arch.contains("ppc") || arch.contains("powerpc")) + && (cpu_lower.contains("intel") || cpu_lower.contains("amd") || cpu_lower.contains("ryzen")) { + mismatch_reasons.push("arch_ppc_but_claims_x86".to_string()); + } + + // ARM claiming Intel (but not Apple Silicon) + if (arch.contains("arm") || arch == "aarch64") + && cpu_lower.contains("intel") && !cpu_lower.contains("apple") { + mismatch_reasons.push("arch_arm_but_claims_intel".to_string()); + } + + // Estimate release year from CPU model + let (release_year, year_details) = estimate_release_year(&cpu_model); + + // Calculate confidence score + let mut confidence: f64 = 0.2; + if cpu_model.is_some() { + confidence += 0.4; + } + if release_year.is_some() { + confidence += 0.2; + } + if !mismatch_reasons.is_empty() { + confidence -= 0.5; + } + confidence = confidence.max(0.0).min(1.0); + + let data = json!({ + "architecture": arch, + "cpu_model": cpu_model, + "cpu_family": cpu_family, + "estimated_release_year": release_year, + "release_year_details": year_details, + "mismatch_reasons": mismatch_reasons, + "confidence": (confidence * 100.0).round() / 100.0, + }); + + // Validation: fail on strong spoofing evidence or missing CPU info + let mut passed = true; + let mut fail_reason = None; + + if cpu_model.is_none() { + passed = false; + fail_reason = Some("cpu_model_unavailable".to_string()); + } else if !mismatch_reasons.is_empty() { + passed = false; + fail_reason = Some("device_age_oracle_mismatch".to_string()); + } + + CheckResult { + name: "device_age_oracle".to_string(), + passed, + data, + fail_reason, + } + } +} + +/// Detect CPU information from the system +pub fn detect_cpu_info() -> (Option, Option) { + let mut cpu_model: Option = None; + let mut cpu_family: Option = None; + + // Linux: read /proc/cpuinfo + #[cfg(target_os = "linux")] + { + if let Ok(cpuinfo) = fs::read_to_string("/proc/cpuinfo") { + for line in cpuinfo.lines() { + if line.starts_with("model name") || line.starts_with("cpu model") { + if let Some(pos) = line.find(':') { + cpu_model = Some(line[pos + 1..].trim().to_string()); + } + } else if line.starts_with("cpu family") { + if let Some(pos) = line.find(':') { + if let Ok(family) = line[pos + 1..].trim().parse::() { + cpu_family = Some(family); + } + } + } + } + } + } + + // macOS: use sysctl + #[cfg(target_os = "macos")] + { + if let Ok(output) = Command::new("sysctl") + .args(&["-n", "machdep.cpu.brand_string"]) + .output() + { + cpu_model = Some(String::from_utf8_lossy(&output.stdout).trim().to_string()); + } + + // Get CPU family on macOS + if let Ok(output) = Command::new("sysctl") + .args(&["-n", "machdep.cpu.family"]) + .output() + { + if let Ok(family) = String::from_utf8_lossy(&output.stdout).trim().parse::() { + cpu_family = Some(family); + } + } + } + + // Windows: would use WMI or registry (not implemented for cross-compile targets) + + (cpu_model, cpu_family) +} + +/// Estimate CPU release year from model string +fn estimate_release_year(cpu_model: &Option) -> (Option, String) { + let model = match cpu_model { + Some(m) => m.to_lowercase(), + None => return (None, "no_model".to_string()), + }; + + // Apple Silicon + if let Some(m) = regex::Regex::new(r"apple\s+m(\d)").unwrap().captures(&model) { + let gen: u32 = m[1].parse().unwrap_or(1); + let year = match gen { + 1 => 2020, + 2 => 2022, + 3 => 2023, + 4 => 2025, + _ => 2020 + (gen - 1) * 2, + }; + return (Some(year), format!("apple_m{}", gen)); + } + + // Intel Core i-series + if let Some(m) = regex::Regex::new(r"i[3579]-\s*(\d{4,5})").unwrap().captures(&model) { + let num = &m[1]; + let gen = if num.len() == 5 { + num[..2].parse::().unwrap_or(10) + } else { + let first = num.chars().next().unwrap().to_digit(10).unwrap_or(2); + if first >= 1 && first <= 9 { first } else { 2 } + }; + + let intel_gen_year = [ + (2, 2011), (3, 2012), (4, 2013), (5, 2014), + (6, 2015), (7, 2016), (8, 2017), (9, 2018), + (10, 2019), (11, 2021), (12, 2021), (13, 2022), (14, 2023), + ]; + + for (g, y) in intel_gen_year { + if gen == g { + return (Some(y), format!("intel_core_gen{}", gen)); + } + } + } + + // AMD Ryzen + if let Some(m) = regex::Regex::new(r"ryzen\s+\d\s+(\d{4})").unwrap().captures(&model) { + let series: u32 = m[1].chars().next().unwrap().to_digit(10).unwrap_or(1); + let ryzen_year = [ + (1, 2017), (2, 2018), (3, 2019), (4, 2022), + (5, 2020), (6, 2021), (7, 2022), (8, 2024), (9, 2025), + ]; + + for (s, y) in ryzen_year { + if series == s { + return (Some(y), format!("amd_ryzen_{}xxx", series)); + } + } + } + + // Vintage families + if model.contains("g5") || model.contains("970") { + return (Some(2003), "ppc_g5_family".to_string()); + } + if model.contains("powerpc") || model.contains("ppc") || model.contains("g4") || model.contains("7450") || model.contains("7447") { + return (Some(1999), "ppc_g4_family".to_string()); + } + if model.contains("g3") || model.contains("750") { + return (Some(1997), "ppc_g3_family".to_string()); + } + if model.contains("sparc") || model.contains("ultrasparc") { + return (Some(1995), "sparc_family".to_string()); + } + if model.contains("core 2") || model.contains("core2") { + return (Some(2006), "core2_family".to_string()); + } + if model.contains("pentium") { + return (Some(2000), "pentium_family".to_string()); + } + if model.contains("athlon") || model.contains("phenom") { + return (Some(2003), "amd_k8_family".to_string()); + } + + (None, "unknown".to_string()) +} + +#[cfg(target_os = "macos")] +use std::process::Command; + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_device_oracle_check() { + let result = DeviceOracleCheck::run(); + assert_eq!(result.name, "device_age_oracle"); + assert!(result.data.get("architecture").is_some()); + } + + #[test] + fn test_estimate_release_year_apple() { + let model = Some("Apple M1".to_string()); + let (year, details) = estimate_release_year(&model); + assert_eq!(year, Some(2020)); + assert_eq!(details, "apple_m1"); + } + + #[test] + fn test_estimate_release_year_intel() { + let model = Some("Intel(R) Core(TM) i7-8700K".to_string()); + let (year, _details) = estimate_release_year(&model); + assert_eq!(year, Some(2017)); + } + + #[test] + fn test_estimate_release_year_amd() { + let model = Some("AMD Ryzen 9 5950X".to_string()); + let (year, _details) = estimate_release_year(&model); + assert_eq!(year, Some(2020)); + } + + #[test] + fn test_estimate_release_year_ppc() { + let model = Some("PowerPC G4 (7450)".to_string()); + let (year, details) = estimate_release_year(&model); + assert_eq!(year, Some(1999)); + assert!(details.contains("ppc_g4")); + } +} diff --git a/rustchain-fingerprint/src/instruction_jitter.rs b/rustchain-fingerprint/src/instruction_jitter.rs new file mode 100644 index 00000000..6f856203 --- /dev/null +++ b/rustchain-fingerprint/src/instruction_jitter.rs @@ -0,0 +1,160 @@ +// Check 5: Instruction Path Jitter +// ================================== +// Captures cycle-level jitter across different pipeline types (int, fp, branch, memory). +// Real hardware exhibits microarchitectural jitter; emulators tend to flatten this. + +use crate::CheckResult; +use serde_json::json; +use std::time::Instant; + +/// Number of samples per instruction type +const SAMPLES: usize = 100; +/// Operations per sample +const OPS: usize = 10000; + +pub struct InstructionJitterCheck; + +impl InstructionJitterCheck { + pub fn run() -> CheckResult { + // Measure integer pipeline jitter + let int_times: Vec = (0..SAMPLES) + .map(|_| measure_int_ops(OPS)) + .collect(); + + // Measure floating-point pipeline jitter + let fp_times: Vec = (0..SAMPLES) + .map(|_| measure_fp_ops(OPS)) + .collect(); + + // Measure branch prediction jitter + let branch_times: Vec = (0..SAMPLES) + .map(|_| measure_branch_ops(OPS)) + .collect(); + + // Calculate statistics + let int_avg = mean_u128(&int_times); + let fp_avg = mean_u128(&fp_times); + let branch_avg = mean_u128(&branch_times); + + let int_stdev = std_dev_u128(&int_times); + let fp_stdev = std_dev_u128(&fp_times); + let branch_stdev = std_dev_u128(&branch_times); + + let data = json!({ + "int_avg_ns": int_avg, + "fp_avg_ns": fp_avg, + "branch_avg_ns": branch_avg, + "int_stdev": int_stdev, + "fp_stdev": fp_stdev, + "branch_stdev": branch_stdev, + }); + + // Validation: real hardware should have jitter variance + let mut passed = true; + let mut fail_reason = None; + + // At least one pipeline should show variance + if int_stdev < 100 && fp_stdev < 100 && branch_stdev < 100 { + passed = false; + fail_reason = Some("no_jitter".to_string()); + } + + CheckResult { + name: "instruction_jitter".to_string(), + passed, + data, + fail_reason, + } + } +} + +/// Measure integer operations timing +fn measure_int_ops(count: usize) -> u128 { + let start = Instant::now(); + let mut x: u64 = 1; + for _i in 0..count { + x = x.wrapping_mul(7).wrapping_add(13) % 65537; + // Prevent optimization + std::hint::black_box(x); + } + start.elapsed().as_nanos() +} + +/// Measure floating-point operations timing +fn measure_fp_ops(count: usize) -> u128 { + let start = Instant::now(); + let mut x: f64 = 1.5; + for _i in 0..count { + x = (x * 1.414 + 0.5) % 1000.0; + std::hint::black_box(x); + } + start.elapsed().as_nanos() +} + +/// Measure branch prediction timing +fn measure_branch_ops(count: usize) -> u128 { + let start = Instant::now(); + let mut x: i64 = 0; + for i in 0..count { + if i % 2 == 0 { + x += 1; + } else { + x -= 1; + } + std::hint::black_box(x); + } + start.elapsed().as_nanos() +} + +/// Calculate mean of u128 values +fn mean_u128(values: &[u128]) -> u128 { + if values.is_empty() { + return 0; + } + values.iter().sum::() / values.len() as u128 +} + +/// Calculate standard deviation of u128 values +fn std_dev_u128(values: &[u128]) -> u128 { + if values.len() < 2 { + return 0; + } + let mean = mean_u128(values) as f64; + let variance: f64 = values.iter() + .map(|v| { + let diff = *v as f64 - mean; + diff * diff + }) + .sum::() / (values.len() - 1) as f64; + variance.sqrt() as u128 +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_instruction_jitter_check() { + let result = InstructionJitterCheck::run(); + assert_eq!(result.name, "instruction_jitter"); + // Note: May fail in VM environments with deterministic scheduling + } + + #[test] + fn test_measure_int_ops() { + let time = measure_int_ops(1000); + assert!(time > 0); + } + + #[test] + fn test_measure_fp_ops() { + let time = measure_fp_ops(1000); + assert!(time > 0); + } + + #[test] + fn test_measure_branch_ops() { + let time = measure_branch_ops(1000); + assert!(time > 0); + } +} diff --git a/rustchain-fingerprint/src/lib.rs b/rustchain-fingerprint/src/lib.rs new file mode 100644 index 00000000..a39523b8 --- /dev/null +++ b/rustchain-fingerprint/src/lib.rs @@ -0,0 +1,219 @@ +// RIP-PoA Hardware Fingerprint Suite +// ==================================== +// High-tier continuation checks for bounty #734 +// Implements 6 core fingerprint validations: +// 1. Clock Drift & Oscillator Skew +// 2. Cache Timing Fingerprint +// 3. SIMD Identity (architecture-specific) +// 4. Thermal Drift Entropy +// 5. Instruction Jitter +// 6. Anti-Emulation (VM/Cloud detection) + +#![cfg_attr(not(test), warn(dead_code))] + +pub mod clock_drift; +pub mod cache_timing; +pub mod simd_identity; +pub mod thermal_drift; +pub mod instruction_jitter; +pub mod anti_emulation; +pub mod device_oracle; + +pub use clock_drift::ClockDriftCheck; +pub use cache_timing::CacheTimingCheck; +pub use simd_identity::SIMDIdentityCheck; +pub use thermal_drift::ThermalDriftCheck; +pub use instruction_jitter::InstructionJitterCheck; +pub use anti_emulation::AntiEmulationCheck; +pub use device_oracle::DeviceOracleCheck; + +use serde::{Deserialize, Serialize}; +use std::time::Duration; + +/// Result of a single fingerprint check +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct CheckResult { + /// Name of the check + pub name: String, + /// Whether the check passed + pub passed: bool, + /// Detailed data from the check + pub data: serde_json::Value, + /// Failure reason if applicable + pub fail_reason: Option, +} + +/// Complete fingerprint report +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct FingerprintReport { + /// Overall pass/fail + pub all_passed: bool, + /// Number of checks passed + pub checks_passed: usize, + /// Total number of checks + pub checks_total: usize, + /// Individual check results + pub results: Vec, + /// Timestamp of report generation + pub timestamp: u64, + /// Platform information + pub platform: PlatformInfo, +} + +/// Platform information +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct PlatformInfo { + /// Architecture (x86_64, aarch64, powerpc, etc.) + pub architecture: String, + /// Operating system + pub os: String, + /// CPU model string + pub cpu_model: Option, + /// CPU family (if available) + pub cpu_family: Option, +} + +/// Run all fingerprint checks +pub fn run_all_checks() -> FingerprintReport { + let platform = detect_platform(); + let mut results = Vec::new(); + let mut checks_passed = 0; + + // 1. Clock Drift + let clock_result = ClockDriftCheck::run(); + if clock_result.passed { + checks_passed += 1; + } + results.push(clock_result); + + // 2. Cache Timing + let cache_result = CacheTimingCheck::run(); + if cache_result.passed { + checks_passed += 1; + } + results.push(cache_result); + + // 3. SIMD Identity + let simd_result = SIMDIdentityCheck::run(); + if simd_result.passed { + checks_passed += 1; + } + results.push(simd_result); + + // 4. Thermal Drift + let thermal_result = ThermalDriftCheck::run(); + if thermal_result.passed { + checks_passed += 1; + } + results.push(thermal_result); + + // 5. Instruction Jitter + let jitter_result = InstructionJitterCheck::run(); + if jitter_result.passed { + checks_passed += 1; + } + results.push(jitter_result); + + // 6. Anti-Emulation + let emulation_result = AntiEmulationCheck::run(); + if emulation_result.passed { + checks_passed += 1; + } + results.push(emulation_result); + + // 7. Device Oracle (bonus check for age attestation) + let oracle_result = DeviceOracleCheck::run(); + if oracle_result.passed { + checks_passed += 1; + } + results.push(oracle_result); + + let checks_total = results.len(); + + FingerprintReport { + all_passed: checks_passed == checks_total, + checks_passed, + checks_total, + results, + timestamp: std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap_or(Duration::ZERO) + .as_secs(), + platform, + } +} + +/// Detect platform information +fn detect_platform() -> PlatformInfo { + let arch = std::env::consts::ARCH.to_string(); + let os = std::env::consts::OS.to_string(); + + let (cpu_model, cpu_family) = device_oracle::detect_cpu_info(); + + PlatformInfo { + architecture: arch, + os, + cpu_model, + cpu_family, + } +} + +/// Validate a fingerprint report against reference profiles +pub fn validate_against_profile(report: &FingerprintReport, profile: &str) -> bool { + // Basic validation - all checks must pass + if !report.all_passed { + return false; + } + + // Profile-specific validation + match profile { + "modern_x86" => { + // Modern x86 should have SSE/AVX + report.results.iter() + .find(|r| r.name == "simd_identity") + .map(|r| { + r.data.get("has_sse").and_then(|v| v.as_bool()).unwrap_or(false) || + r.data.get("has_avx").and_then(|v| v.as_bool()).unwrap_or(false) + }) + .unwrap_or(false) + } + "vintage_ppc" => { + // Vintage PowerPC should have AltiVec + report.results.iter() + .find(|r| r.name == "simd_identity") + .map(|r| { + r.data.get("has_altivec").and_then(|v| v.as_bool()).unwrap_or(false) + }) + .unwrap_or(false) + } + "arm64" => { + // ARM64 should have NEON + report.results.iter() + .find(|r| r.name == "simd_identity") + .map(|r| { + r.data.get("has_neon").and_then(|v| v.as_bool()).unwrap_or(false) + }) + .unwrap_or(false) + } + _ => true, // Unknown profile - just check all passed + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_run_all_checks() { + let report = run_all_checks(); + assert!(report.checks_total >= 6); + assert!(report.checks_passed <= report.checks_total); + } + + #[test] + fn test_platform_detection() { + let platform = detect_platform(); + assert!(!platform.architecture.is_empty()); + assert!(!platform.os.is_empty()); + } +} diff --git a/rustchain-fingerprint/src/simd_identity.rs b/rustchain-fingerprint/src/simd_identity.rs new file mode 100644 index 00000000..e3b6df80 --- /dev/null +++ b/rustchain-fingerprint/src/simd_identity.rs @@ -0,0 +1,178 @@ +// Check 3: SIMD Unit Identity +// ============================ +// Detects and validates SIMD capabilities (SSE/AVX/AltiVec/NEON). +// Architecture-specific guards for x86_64, aarch64, and powerpc. + +use crate::CheckResult; +use serde_json::json; + +pub struct SIMDIdentityCheck; + +impl SIMDIdentityCheck { + pub fn run() -> CheckResult { + let arch = std::env::consts::ARCH; + + let (has_sse, has_avx, has_altivec, has_neon, simd_flags) = detect_simd_features(); + + let data = json!({ + "architecture": arch, + "has_sse": has_sse, + "has_avx": has_avx, + "has_altivec": has_altivec, + "has_neon": has_neon, + "simd_flags_count": simd_flags.len(), + "simd_flags": simd_flags, + }); + + // Validation: should have at least one SIMD feature + let mut passed = true; + let mut fail_reason = None; + + let has_any_simd = has_sse || has_avx || has_altivec || has_neon || !simd_flags.is_empty(); + + if !has_any_simd { + passed = false; + fail_reason = Some("no_simd_detected".to_string()); + } + + // Architecture-specific validation + match arch { + "x86_64" | "x86" | "i686" => { + // x86 should have SSE at minimum + if !has_sse && !has_avx && simd_flags.is_empty() { + passed = false; + fail_reason = Some("x86_missing_simd".to_string()); + } + } + "aarch64" | "arm" => { + // ARM64 should have NEON + if !has_neon && simd_flags.is_empty() { + passed = false; + fail_reason = Some("arm_missing_neon".to_string()); + } + } + "powerpc" | "powerpc64" => { + // PowerPC should have AltiVec/VMX + if !has_altivec && simd_flags.is_empty() { + passed = false; + fail_reason = Some("ppc_missing_altivec".to_string()); + } + } + _ => {} + } + + CheckResult { + name: "simd_identity".to_string(), + passed, + data, + fail_reason, + } + } +} + +/// Detect SIMD features based on architecture +fn detect_simd_features() -> (bool, bool, bool, bool, Vec) { + let arch = std::env::consts::ARCH; + let mut flags = Vec::new(); + let mut has_sse = false; + let mut has_avx = false; + let mut has_altivec = false; + let mut has_neon = false; + + // Linux: read /proc/cpuinfo + #[cfg(target_os = "linux")] + { + if let Ok(cpuinfo) = std::fs::read_to_string("/proc/cpuinfo") { + for line in cpuinfo.lines() { + if line.starts_with("flags") || line.starts_with("Features") { + if let Some(pos) = line.find(':') { + let features: Vec<&str> = line[pos + 1..].split_whitespace().collect(); + flags = features.iter().map(|s| s.to_string()).collect(); + + has_sse = features.iter().any(|&f| f.starts_with("sse")); + has_avx = features.iter().any(|&f| f.starts_with("avx")); + has_neon = features.iter().any(|&f| f == "neon" || f.starts_with("asimd")); + has_altivec = features.iter().any(|&f| f == "altivec" || f == "vsx"); + break; + } + } + } + } + } + + // macOS: use sysctl + #[cfg(target_os = "macos")] + { + if let Ok(output) = std::process::Command::new("sysctl") + .args(&["-a"]) + .output() + { + let output = String::from_utf8_lossy(&output.stdout); + for line in output.lines() { + if line.contains("feature") || line.contains("altivec") { + flags.push(line.to_string()); + if line.contains("altivec") { + has_altivec = true; + } + } + if line.contains("sse") { + has_sse = true; + } + if line.contains("avx") { + has_avx = true; + } + if line.contains("neon") || line.contains("fp") { + has_neon = true; + } + } + } + } + + // Fallback: use architecture defaults + if flags.is_empty() { + match arch { + "x86_64" | "x86" | "i686" => { + has_sse = true; + flags.push("sse".to_string()); + flags.push("sse2".to_string()); + #[cfg(target_feature = "avx")] + { + has_avx = true; + flags.push("avx".to_string()); + } + } + "aarch64" | "arm" => { + has_neon = true; + flags.push("neon".to_string()); + flags.push("asimd".to_string()); + } + "powerpc" | "powerpc64" => { + has_altivec = true; + flags.push("altivec".to_string()); + flags.push("vsx".to_string()); + } + _ => {} + } + } + + (has_sse, has_avx, has_altivec, has_neon, flags) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_simd_identity_check() { + let result = SIMDIdentityCheck::run(); + assert_eq!(result.name, "simd_identity"); + assert!(result.data.get("architecture").is_some()); + } + + #[test] + fn test_detect_simd_features() { + let (sse, avx, altivec, neon, flags) = detect_simd_features(); + // At least one should be true based on architecture + assert!(sse || avx || altivec || neon || !flags.is_empty()); + } +} diff --git a/rustchain-fingerprint/src/thermal_drift.rs b/rustchain-fingerprint/src/thermal_drift.rs new file mode 100644 index 00000000..c1bffc3f --- /dev/null +++ b/rustchain-fingerprint/src/thermal_drift.rs @@ -0,0 +1,134 @@ +// Check 4: Thermal Drift Entropy +// ================================ +// Measures performance changes as CPU heats up under load. +// Real silicon shows thermal drift; emulators often ignore this. + +use crate::CheckResult; +use serde_json::json; +use sha2::{Sha256, Digest}; +use std::time::Instant; + +/// Number of samples per phase +const SAMPLES: usize = 50; +/// Warmup iterations +const WARMUP_ITERATIONS: usize = 100; +/// Work per iteration +const WORK_ITERATIONS: usize = 10000; + +pub struct ThermalDriftCheck; + +impl ThermalDriftCheck { + pub fn run() -> CheckResult { + // Phase 1: Cold measurements + let cold_times: Vec = (0..SAMPLES) + .map(|i| measure_work(&format!("cold_{}", i))) + .collect(); + + // Phase 2: Heat up the CPU + for _ in 0..WARMUP_ITERATIONS { + for _ in 0..WORK_ITERATIONS { + let mut hasher = Sha256::new(); + hasher.update(b"warmup"); + let _ = hasher.finalize(); + } + } + + // Phase 3: Hot measurements + let hot_times: Vec = (0..SAMPLES) + .map(|i| measure_work(&format!("hot_{}", i))) + .collect(); + + // Calculate statistics + let cold_avg = mean_u128(&cold_times) as f64; + let hot_avg = mean_u128(&hot_times) as f64; + let cold_stdev = std_dev_u128(&cold_times) as f64; + let hot_stdev = std_dev_u128(&hot_times) as f64; + + // Thermal drift ratio + let drift_ratio = if cold_avg > 0.0 { hot_avg / cold_avg } else { 0.0 }; + + let data = json!({ + "cold_avg_ns": cold_avg as u64, + "hot_avg_ns": hot_avg as u64, + "cold_stdev": cold_stdev as u64, + "hot_stdev": hot_stdev as u64, + "drift_ratio": (drift_ratio * 10_000.0).round() / 10_000.0, + }); + + // Validation: real hardware should show some thermal variance + let mut passed = true; + let mut fail_reason = None; + + // Both cold and hot should have some variance + if cold_stdev < 100.0 && hot_stdev < 100.0 { + passed = false; + fail_reason = Some("no_thermal_variance".to_string()); + } + + // Drift ratio should be reasonable (not exactly 1.0) + if (drift_ratio - 1.0).abs() < 0.0001 && cold_stdev < 1000.0 { + passed = false; + fail_reason = Some("synthetic_thermal".to_string()); + } + + CheckResult { + name: "thermal_drift".to_string(), + passed, + data, + fail_reason, + } + } +} + +/// Measure time for hash work +fn measure_work(label: &str) -> u128 { + let start = Instant::now(); + for i in 0..WORK_ITERATIONS { + let data = format!("{}_{}", label, i); + let mut hasher = Sha256::new(); + hasher.update(data.as_bytes()); + let _ = hasher.finalize(); + } + start.elapsed().as_nanos() +} + +/// Calculate mean of u128 values +fn mean_u128(values: &[u128]) -> u128 { + if values.is_empty() { + return 0; + } + values.iter().sum::() / values.len() as u128 +} + +/// Calculate standard deviation of u128 values +fn std_dev_u128(values: &[u128]) -> u128 { + if values.len() < 2 { + return 0; + } + let mean = mean_u128(values) as f64; + let variance: f64 = values.iter() + .map(|v| { + let diff = *v as f64 - mean; + diff * diff + }) + .sum::() / (values.len() - 1) as f64; + variance.sqrt() as u128 +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_thermal_drift_check() { + let result = ThermalDriftCheck::run(); + assert_eq!(result.name, "thermal_drift"); + // Note: May fail in VM environments with stable timing + } + + #[test] + fn test_measure_work() { + let time = measure_work("test"); + assert!(time > 0); + } +}