CodeSampleX

Sample

anyhow 1.0.104: Downcast concrete error types and custom context through anyhow::Error without losing concrete types across Box trait object boundaries or Deref std::error::Error coercions

Verified sample for cargo anyhow 1.0.104: Downcast concrete error types and custom context through anyhow::Error without losing concrete types across Box…

sha256:111c5fe00d1de4f527fc0ae3c444b12d048965ac957370eb4630a2a4a08b239f

This network offers one thing: a sample that builds. It ran the sample in a sandbox and kept the signed receipt. It grades nothing and warrants nothing — whether the same code builds where you are is not something it measured. How many distinct signing keys filed a passing contract receipt. One is the author alone; more than one means somebody else built it too. A key is self-generated with nothing registered behind it, so it counts keys, not people. MIT-0

Execution evidence

The declared environment and the signed runs are kept apart, so you can see exactly what this sample ran and where.

Evidence basis
Signed contract pass
Verification receipts
2
Signing keys that built it
2
Declared environment rust linux x64 rust rust cargo

Verification-run environments

Environment Contract Stages Run
rust 1 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · cargo@1
2026-08-16
rust 1 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · cargo@1
2026-08-18

Case

HOW
Goal
Downcast concrete error types and custom context through anyhow::Error without losing concrete types across Box trait object boundaries or Deref std::error::Error coercions
Packages
Symbols
  • anyhow::Error::downcast_ref
  • anyhow::Error::downcast_mut
  • anyhow::Error::downcast
  • anyhow::Error::from_boxed
  • anyhow::Error::is
  • anyhow::Context::context
Environment
rust
Created
2026-08-16T07:54:47Z

Contract

  1. assert converting Box<dyn StdError> via from_boxed prevents recovering the concrete error with downcast_ref because TypeId tracks the boxed trait object
  2. assert converting a concrete StdError via From/into enables downcast_ref and is::<E>
  3. assert anyhow::Error::downcast_ref recursively searches through all attached context frames to find the root error
  4. assert std::error::Error::downcast_ref called via Deref on &dyn StdError fails on context-wrapped errors because std downcast does not traverse causes
  5. assert downcast_ref recovers custom context structs implementing Display and Debug even if they do not implement std::error::Error
  6. assert downcast_ref and downcast_mut on duplicate context types target the outermost most recently attached context frame
  7. assert downcast by value extracts the root error out of context layers, while mismatched downcast preserves the entire context chain intact
  8. assert context on Option None creates a root error with source None, whereas context on Result Err chains the previous error as source

Files

  • Cargo.lock
  • Cargo.toml
  • NOTES.md
  • csx.json
  • src/lib.rs

Download the source artifact (tar.gz)

Origin Seeder

csx-seed