pub struct ZoiLockV2 {
pub version: String,
pub packages_hash: Option<String>,
pub registries_hash: Option<String>,
pub registries: BTreeMap<String, LockRegistryV2>,
pub installed_packages: BTreeMap<String, LockPackageDetailV2>,
pub platform: Option<String>,
pub manifest: Option<LockManifestV2>,
pub project: Option<LockProjectV2>,
pub imports: BTreeMap<String, LockImportV2>,
pub root_requirements: Vec<LockRequirementV2>,
}Expand description
The root structure of a zoi.lock file (Specification v2).
This lockfile guarantees absolute reproducibility for project environments. Instead of just pinning versions, it pins:
- Local State Hashes: Cryptographic hashes of the actual store and database directories.
- Registry Revisions: The exact Git commit SHAs of the registries used to resolve packages.
- Package Hashes: Expected checksums for every installed package directory.
Fields§
§version: StringThe lockfile specification version (always “2”).
packages_hash: Option<String>The SHA-512 hash of the .zoi/pkgs/store directory, capturing the
exact file state.
registries_hash: Option<String>The SHA-512 hash of the .zoi/pkgs/db directory, capturing the
registry metadata state.
registries: BTreeMap<String, LockRegistryV2>A map of registry handles to their pinned Git URLs and commit revisions.
installed_packages: BTreeMap<String, LockPackageDetailV2>A map of package identifiers to their fully resolved installation state.
platform: Option<String>The target platform this lockfile was generated for.
manifest: Option<LockManifestV2>The project manifest captured by this lockfile.
project: Option<LockProjectV2>The project configuration captured by this lockfile.
imports: BTreeMap<String, LockImportV2>Imported projects keyed by repository URL.
root_requirements: Vec<LockRequirementV2>The package requirements declared at the project root.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for ZoiLockV2
impl<'de> Deserialize<'de> for ZoiLockV2
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ZoiLockV2, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ZoiLockV2, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for ZoiLockV2
impl Serialize for ZoiLockV2
Source§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,
Auto Trait Implementations§
impl Freeze for ZoiLockV2
impl RefUnwindSafe for ZoiLockV2
impl Send for ZoiLockV2
impl Sync for ZoiLockV2
impl Unpin for ZoiLockV2
impl UnsafeUnpin for ZoiLockV2
impl UnwindSafe for ZoiLockV2
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<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