Struct PackageRunBindingV1
pub struct PackageRunBindingV1 { /* private fields */ }Description
Content-addressed lineage edge from one exact package compilation to one canonical run manifest.
This record binds identities only. It does not independently prove that an execution occurred or that its results were accepted. The composing layer must validate the linked run under its own contract before constructing or accepting this edge.
Implementations§
§impl PackageRunBindingV1
impl PackageRunBindingV1
pub fn new(
compilation: &PackageCompilationRecordV1,
run_schema: BoundRunManifestSchemaV1,
run_sha256: CanonicalRunDigest,
) -> Result<PackageRunBindingV1, ContractError>
pub fn new( compilation: &PackageCompilationRecordV1, run_schema: BoundRunManifestSchemaV1, run_sha256: CanonicalRunDigest, ) -> Result<PackageRunBindingV1, ContractError>
Bind an externally validated run identity to one exact package compilation.
This constructor derives the model and compilation identities from the compilation record. The caller remains responsible for proving that the supplied run schema and digest came from a run over that same model.
pub fn from_json(bytes: &[u8]) -> Result<PackageRunBindingV1, ContractError>
pub fn from_json(bytes: &[u8]) -> Result<PackageRunBindingV1, ContractError>
Decode and locally validate one bounded lineage edge.
External compilation and run artifacts must subsequently be supplied
to Self::validate_against.
pub fn canonical_json(&self) -> Result<Vec<u8>, ContractError>
pub fn canonical_json(&self) -> Result<Vec<u8>, ContractError>
Emit deterministic canonical JSON under the binding-specific byte bound.
pub fn digest(&self) -> Result<PackageRunBindingDigest, ContractError>
pub fn digest(&self) -> Result<PackageRunBindingDigest, ContractError>
Domain-separated identity of the complete lineage edge.
pub fn validate_against(
&self,
compilation: &PackageCompilationRecordV1,
run_schema: BoundRunManifestSchemaV1,
run_sha256: CanonicalRunDigest,
) -> Result<(), ContractError>
pub fn validate_against( &self, compilation: &PackageCompilationRecordV1, run_schema: BoundRunManifestSchemaV1, run_sha256: CanonicalRunDigest, ) -> Result<(), ContractError>
Replay the exact compilation and run identities named by this edge.
This verifies content linkage, not execution acceptance. A higher layer must first validate the concrete run artifact and its model linkage.
pub const fn model_digest(&self) -> CanonicalModelDigest
pub const fn model_digest(&self) -> CanonicalModelDigest
Canonical model shared by the package compilation and linked run.
pub const fn compilation_digest(&self) -> PackageCompilationDigest
pub const fn compilation_digest(&self) -> PackageCompilationDigest
Exact package-compilation record linked by this edge.
pub const fn run_schema(&self) -> BoundRunManifestSchemaV1
pub const fn run_schema(&self) -> BoundRunManifestSchemaV1
Closed schema of the linked run manifest.
pub const fn run_digest(&self) -> CanonicalRunDigest
pub const fn run_digest(&self) -> CanonicalRunDigest
Externally computed identity of the linked run manifest.
Trait Implementations§
§impl Clone for PackageRunBindingV1
impl Clone for PackageRunBindingV1
§impl Debug for PackageRunBindingV1
impl Debug for PackageRunBindingV1
§impl<'de> Deserialize<'de> for PackageRunBindingV1
impl<'de> Deserialize<'de> for PackageRunBindingV1
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<PackageRunBindingV1, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<PackageRunBindingV1, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl PartialEq for PackageRunBindingV1
impl PartialEq for PackageRunBindingV1
§fn eq(&self, other: &PackageRunBindingV1) -> bool
fn eq(&self, other: &PackageRunBindingV1) -> bool
self and other values to be equal, and is used by ==.§impl Serialize for PackageRunBindingV1
impl Serialize for PackageRunBindingV1
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl Eq for PackageRunBindingV1
impl StructuralPartialEq for PackageRunBindingV1
Auto Trait Implementations§
impl Freeze for PackageRunBindingV1
impl RefUnwindSafe for PackageRunBindingV1
impl Send for PackageRunBindingV1
impl Sync for PackageRunBindingV1
impl Unpin for PackageRunBindingV1
impl UnsafeUnpin for PackageRunBindingV1
impl UnwindSafe for PackageRunBindingV1
Blanket Implementations§
Source§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
§fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
§impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
§type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
§fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
Source§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
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, Dst> ConvAsUtil<Dst> for T
impl<T, Dst> ConvAsUtil<Dst> for T
§fn approx(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
§impl<T> ConvUtil for T
impl<T> ConvUtil for T
§fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
§fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
§fn into_as<Dst>(self) -> Dstwhere
Self: Sized + Into<Dst>,
fn into_as<Dst>(self) -> Dstwhere
Self: Sized + Into<Dst>,
§fn try_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + TryInto<Dst>,
fn try_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + TryInto<Dst>,
§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> Twhere
Self: Distribution<T>,
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Source§impl<T> From<T> for T
impl<T> From<T> for T
Source§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
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>where
F: FnOnce(&Self) -> bool,
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>where
F: FnOnce(&Self) -> bool,
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§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> Same for T
impl<T> Same for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.