pub struct CapabilityContainmentWitness {
pub endpoint_name: String,
pub execute_flow: String,
pub flow_resolved: bool,
pub declared_requires: Vec<String>,
pub reached_gates: Vec<String>,
pub uncovered_gates: Vec<String>,
}Expand description
§51.x — witness for PropertyClass::CapabilityContainment.
The derivation for one endpoint’s reachable-store-gate containment.
The checker re-resolves the execute_flow, re-walks its reachable
store ops, re-resolves each store’s capability gate, and recomputes
the uncovered set; a forged witness is rejected because the
recomputation disagrees (D51.2).
Fields§
§endpoint_name: StringThe apx / axonendpoint this proof is about.
execute_flow: StringThe flow the endpoint executes.
flow_resolved: boolWhether execute_flow resolves to a flow present in the IR.
declared_requires: Vec<String>The capability scopes the endpoint declares (requires:),
sorted + deduped.
reached_gates: Vec<String>The capability gates of the stores the flow REACHES (each
reached store’s non-empty capability), sorted + deduped.
uncovered_gates: Vec<String>reached_gates \ declared_requires — gates the flow reaches but
the endpoint does not declare requiring. Empty for a verifying
proof.
Trait Implementations§
Source§impl Clone for CapabilityContainmentWitness
impl Clone for CapabilityContainmentWitness
Source§fn clone(&self) -> CapabilityContainmentWitness
fn clone(&self) -> CapabilityContainmentWitness
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 CapabilityContainmentWitness
impl Debug for CapabilityContainmentWitness
Source§impl<'de> Deserialize<'de> for CapabilityContainmentWitness
impl<'de> Deserialize<'de> for CapabilityContainmentWitness
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for CapabilityContainmentWitness
Source§impl PartialEq for CapabilityContainmentWitness
impl PartialEq for CapabilityContainmentWitness
Source§fn eq(&self, other: &CapabilityContainmentWitness) -> bool
fn eq(&self, other: &CapabilityContainmentWitness) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for CapabilityContainmentWitness
Auto Trait Implementations§
impl Freeze for CapabilityContainmentWitness
impl RefUnwindSafe for CapabilityContainmentWitness
impl Send for CapabilityContainmentWitness
impl Sync for CapabilityContainmentWitness
impl Unpin for CapabilityContainmentWitness
impl UnsafeUnpin for CapabilityContainmentWitness
impl UnwindSafe for CapabilityContainmentWitness
Blanket Implementations§
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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