Closed ok-nick closed 3 months ago
Adding Store
to ManifestStore
causes a breaking change since ManifestStore
no longer implements UnwindSafe
nor RefUnwindSafe
. This is because Store
contains a trait object, which cannot guarantee unwind safety unless the trait object requires the traits mentioned or we mask it with AssertUnwindSafe
. See https://github.com/rust-lang/rust/issues/65717, https://github.com/rust-lang/rust/issues/40628, and https://github.com/rust-lang/rfcs/pull/3260.
For now we require TrustHandlerConfig
to be UnwindSafe
and RefUnwindSafe
, but ideally TrustHandlerConfig
would either be (1) a generic on Store
or (2) each impl is gated behind a feature flag for each platform.
Changes in this pull request
Store
field toManifestStore
to open access to allStore
methods and allow constructing aManifestStoreReport
on the flyDebug
forReader
, providing the user with detailed debug information about the manifest (effectively exposingManifestStoreReport
in the unstable API)Notes
Reader
already implementsDisplay
, providing user-friendly information about the manifest, whereasDebug
provides detailed info viaManifestStoreReport
.ManifestStoreReport::dump_tree
andManifestStoreReport::cert_chain
in the unstable API?Manifest::certificates
, could be usefulChecklist
TO DO
items (or similar) have been entered as GitHub issues and the link to that issue has been included in a comment.