Struct ResolutionRecordV1
pub struct ResolutionRecordV1 { /* private fields */ }Implementations§
§impl ResolutionRecordV1
impl ResolutionRecordV1
pub fn new( root: ModelPackageIdentityV1, nodes: Vec<ResolutionNodeV1>, edges: Vec<ResolutionEdgeV1>, ) -> Result<ResolutionRecordV1, ContractError>
pub fn preflight_exact_release_closure(
root_manifest: &AuthorManifestV1,
dependencies: &[PackageReleaseV1],
) -> Result<(), ContractError>
pub fn preflight_exact_release_closure( root_manifest: &AuthorManifestV1, dependencies: &[PackageReleaseV1], ) -> Result<(), ContractError>
Validate the allocation footprint of one author manifest and its caller-supplied exact dependency release closure.
This performs no discovery and does not validate graph reachability or
release semantics. It exists so composition layers can reject package
and manifest-edge resource overflow before indexing or copying the
supplied releases. Self::from_exact_releases repeats this preflight
and owns complete graph validation.
§Errors
Returns a package contract error when the package or manifest-edge count exceeds the v1 resolution bounds or a checked count overflows.
pub fn from_exact_releases(
root: &PackageReleaseV1,
dependencies: &[PackageReleaseV1],
) -> Result<ResolutionRecordV1, ContractError>
pub fn from_exact_releases( root: &PackageReleaseV1, dependencies: &[PackageReleaseV1], ) -> Result<ResolutionRecordV1, ContractError>
Derive one exact lock record from a root release and a caller-supplied complete dependency closure.
This operation performs no discovery, selection, store access, or source fetching. Nodes come only from the supplied release identities and source digests; edges come only from their closed author manifests. Ordinary resolution normalization rejects duplicate, ambiguous, missing, cyclic, and unreachable inputs.
§Errors
Returns a package contract error when a release identity or source digest cannot be reconstructed, or the exact graph is not closed and valid.
pub fn from_json(bytes: &[u8]) -> Result<ResolutionRecordV1, ContractError>
pub fn canonical_json(&self) -> Result<Vec<u8>, ContractError>
pub fn digest(&self) -> Result<ResolutionDigest, ContractError>
pub fn root(&self) -> &ModelPackageIdentityV1
pub fn nodes(&self) -> &[ResolutionNodeV1]
pub fn edges(&self) -> &[ResolutionEdgeV1]
Trait Implementations§
§impl Clone for ResolutionRecordV1
impl Clone for ResolutionRecordV1
§impl Debug for ResolutionRecordV1
impl Debug for ResolutionRecordV1
§impl<'de> Deserialize<'de> for ResolutionRecordV1
impl<'de> Deserialize<'de> for ResolutionRecordV1
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ResolutionRecordV1, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ResolutionRecordV1, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl PartialEq for ResolutionRecordV1
impl PartialEq for ResolutionRecordV1
§fn eq(&self, other: &ResolutionRecordV1) -> bool
fn eq(&self, other: &ResolutionRecordV1) -> bool
self and other values to be equal, and is used by ==.§impl Serialize for ResolutionRecordV1
impl Serialize for ResolutionRecordV1
§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 ResolutionRecordV1
impl StructuralPartialEq for ResolutionRecordV1
Auto Trait Implementations§
impl Freeze for ResolutionRecordV1
impl RefUnwindSafe for ResolutionRecordV1
impl Send for ResolutionRecordV1
impl Sync for ResolutionRecordV1
impl Unpin for ResolutionRecordV1
impl UnsafeUnpin for ResolutionRecordV1
impl UnwindSafe for ResolutionRecordV1
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.