pub struct BaseProfile {
pub name: String,
pub version: String,
pub mode: InteropMode,
pub canonicalization: CanonicalizationPolicy,
pub security: SecurityPolicy,
pub security_floor: SecurityPolicy,
pub validation: ValidationPolicy,
pub as2_validation: As2ValidationPolicy,
}Fields§
§name: StringShort human-readable name for this profile (e.g. "peppol_as4_strict").
version: StringSpecification version string for this profile (e.g. "2.0", "1.14").
Conveys the version of the underlying standard or network specification this profile implements. Informational only — used in diagnostics and profile comparison but does not affect protocol behaviour.
mode: InteropMode§canonicalization: CanonicalizationPolicy§security: SecurityPolicy§security_floor: SecurityPolicyMinimum security policy that no layer may relax.
ProfileStack::overrides and ProfileStack::partner_overrides are
public, so any overlay can rewrite Self::security. The floor is the
invariant that survives that: ProfileStack::validate resolves the
stack for the deployment baseline and for every declared partner, and
rejects any resolved policy that does not
satisfy this floor.
Defaults to SecurityPolicy::SIGN_AND_ENCRYPT, which is what PEPPOL,
CEF eDelivery and BDEW AS4-Profil v1.2 §2.2.6.2.2 all mandate. Lower it
only for a profile that genuinely permits sign-only or plaintext
exchange, and expect the resulting relaxation to be reported as a
ProfileLintCode::SecurityRelaxation lint at
ProfileLintSeverity::Critical.
validation: ValidationPolicy§as2_validation: As2ValidationPolicyAS2-only validation settings. Ignored by AS4 profiles.
Implementations§
Source§impl BaseProfile
impl BaseProfile
Sourcepub fn new(name: impl Into<String>, version: impl Into<String>) -> Self
pub fn new(name: impl Into<String>, version: impl Into<String>) -> Self
A strict, fail-closed base profile with the given name and version.
Equivalent to BaseProfile::default with name/version set:
strict interop mode, sign-and-encrypt required, and a
security_floor that forbids any layer from
dropping either protection.
Sourcepub fn with_security_floor(self, floor: SecurityPolicy) -> Self
pub fn with_security_floor(self, floor: SecurityPolicy) -> Self
Replace the security_floor.
Trait Implementations§
Source§impl Clone for BaseProfile
impl Clone for BaseProfile
Source§fn clone(&self) -> BaseProfile
fn clone(&self) -> BaseProfile
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BaseProfile
impl Debug for BaseProfile
Source§impl Default for BaseProfile
impl Default for BaseProfile
impl Eq for BaseProfile
Source§impl PartialEq for BaseProfile
impl PartialEq for BaseProfile
impl StructuralPartialEq for BaseProfile
Auto Trait Implementations§
impl Freeze for BaseProfile
impl RefUnwindSafe for BaseProfile
impl Send for BaseProfile
impl Sync for BaseProfile
impl Unpin for BaseProfile
impl UnsafeUnpin for BaseProfile
impl UnwindSafe for BaseProfile
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more