pub struct Package {Show 42 fields
pub name: String,
pub repo: String,
pub version: Option<String>,
pub epoch: u32,
pub revision: String,
pub sub_packages: Option<Vec<String>>,
pub main_subs: Option<Vec<String>>,
pub versions: Option<HashMap<String, String>>,
pub description: String,
pub website: Option<String>,
pub readme: Option<String>,
pub git: String,
pub maintainer: Maintainer,
pub author: Option<Author>,
pub license: String,
pub types: Vec<String>,
pub platforms: Option<Vec<String>>,
pub ci: Option<CiConfig>,
pub dependencies: Option<Dependencies>,
pub package_type: PackageType,
pub alt: Option<String>,
pub scope: Scope,
pub scopes: Option<Vec<Scope>>,
pub registry_handle: Option<String>,
pub sub_package: Option<String>,
pub reason: Option<InstallReason>,
pub bins: Option<Vec<String>>,
pub conflicts: Option<Vec<String>>,
pub replaces: Option<Vec<String>>,
pub provides: Option<Vec<String>>,
pub tags: Vec<String>,
pub extension: Option<ExtensionInfo>,
pub rollback: Option<bool>,
pub updates: Option<Vec<UpdateInfo>>,
pub hooks: Option<Hooks>,
pub service: Option<Service>,
pub backup: Option<Vec<String>>,
pub zoios: Option<bool>,
pub installed_size: Option<u64>,
pub archive_size: Option<u64>,
pub sandbox: Option<SandboxConfig>,
pub completions: Option<Vec<ShellCompletion>>,
}Expand description
The core package definition blueprint.
This struct is the Rust representation of the metadata({...}) block in a
.pkg.lua file. It defines what a package is, where it comes from, and how
it can be installed, but does not represent an actual installation on disk
(see InstallManifest for that).
Fields§
§name: StringUnique name of the package.
repo: StringThe repository tier this package belongs to (e.g. “core”, “main”).
version: Option<String>The resolved version string.
epoch: u32Forced version precedence (default 0).
revision: StringIncremental revision for the same upstream version (e.g. for packaging fixes).
sub_packages: Option<Vec<String>>List of available sub-packages for split-package definitions.
main_subs: Option<Vec<String>>Default sub-packages to install if none are specified.
versions: Option<HashMap<String, String>>Map of version channels (e.g. “stable”, “nightly”) to versions.
description: StringShort summary of the package.
website: Option<String>Project homepage URL.
readme: Option<String>URL or path to the package README.
git: StringUpstream Git repository URL.
maintainer: MaintainerThe maintainer responsible for the Zoi package definition.
The original software author.
license: StringSPDX license identifier.
types: Vec<String>Supported build types (e.g. “source”, “pre-compiled”).
platforms: Option<Vec<String>>Supported OS/Arch platforms.
ci: Option<CiConfig>CI runner configuration for registry pipelines.
dependencies: Option<Dependencies>Build and runtime dependencies.
package_type: PackageTypeThe package category (Package, App, Extension, etc.).
alt: Option<String>Pointer to an alternative package definition.
scope: ScopeThe primary/default installation scope for this package.
scopes: Option<Vec<Scope>>List of allowed installation scopes. If provided, Zoi will enforce that the package is only installed into one of these targets.
registry_handle: Option<String>Handle of the registry this package was resolved from.
sub_package: Option<String>For split packages, the name of the specific sub-package to install.
reason: Option<InstallReason>The reason for installing this package (Direct or Dependency).
bins: Option<Vec<String>>List of executable binaries provided by the package.
conflicts: Option<Vec<String>>List of packages this package is incompatible with.
replaces: Option<Vec<String>>List of packages that this package replaces.
provides: Option<Vec<String>>List of virtual packages or features that this package provides.
Custom metadata tags for the package.
extension: Option<ExtensionInfo>Configuration for extension-type packages.
rollback: Option<bool>Whether this package supports rollback.
updates: Option<Vec<UpdateInfo>>Update notices or warnings for the package.
hooks: Option<Hooks>Lifecycle hooks for installation, upgrade, and removal.
service: Option<Service>Background service configuration.
backup: Option<Vec<String>>Files or directories that should be backed up during upgrades.
zoios: Option<bool>Restricts installation to ZoiOS or non-ZoiOS systems.
None (default): Works on both.
Some(true): ZoiOS only.
Some(false): Non-ZoiOS only.
installed_size: Option<u64>The estimated size of the package after installation (in bytes).
archive_size: Option<u64>The size of the package archive (in bytes).
sandbox: Option<SandboxConfig>Sandbox security configuration for the package.
completions: Option<Vec<ShellCompletion>>Shell completion scripts provided by the package.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Package
impl<'de> Deserialize<'de> for Package
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Package, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Package, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for Package
impl Serialize for Package
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 Package
impl RefUnwindSafe for Package
impl Send for Package
impl Sync for Package
impl Unpin for Package
impl UnsafeUnpin for Package
impl UnwindSafe for Package
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