Skip to main content

Provider

Trait Provider 

Source
pub trait Provider<X: Xml, A> {
    type Error;

    // Required method
    fn visit<VE, W: Work>(
        &self,
        credential: &Checked<'_, '_, A, X::Id, X::Document, X::Generation>,
        open: &[Opaque<X::Id, X::Document, X::Generation>],
        access: &Access<'_, X, W>,
        visitor: impl for<'value, 'document> FnMut(Need<'value, 'document, X::Id, X::Document, X::Generation>) -> Result<(), VE>,
    ) -> Result<Completeness, VisitError<Self::Error, VE>>;
}
Expand description

Same format owner as credential authentication, operating on its actual retained receipt A, WITHOUT authenticating the credential again. It visits every required input, including the attribute certificate’s own status; returning no inputs is Complete only if that format actually needs none. CertificateFree is never an implicit implementation of this capability.

EN319132-1 V1.3.1 §§5.2.6/5.4.4/5.4.5/6.3(aa) leave concrete assertion and other credential formats with their owners while requiring their validation material. A X.509 issuer’s status does not substitute for credential status. https://www.etsi.org/deliver/etsi_en/319100_319199/31913201/01.03.01_60/en_31913201v010301p.pdf

Required Associated Types§

Source

type Error

Original format/processing/resource cause, not a negative completeness fact.

Required Methods§

Source

fn visit<VE, W: Work>( &self, credential: &Checked<'_, '_, A, X::Id, X::Document, X::Generation>, open: &[Opaque<X::Id, X::Document, X::Generation>], access: &Access<'_, X, W>, visitor: impl for<'value, 'document> FnMut(Need<'value, 'document, X::Id, X::Document, X::Generation>) -> Result<(), VE>, ) -> Result<Completeness, VisitError<Self::Error, VE>>

Visit dependencies of THIS authenticated original credential once. Source decoding, semantic/status checks and every traversal/copy/allocation use the supplied current Access/Work before execution. Do not reparse XML, reverify the credential, acquire sources implicitly or drop a callback refusal. The common caller independently preserves that first refusal.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§