pub struct Package {Show 41 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 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>§reason: Option<InstallReason>§bins: Option<Vec<String>>§conflicts: Option<Vec<String>>§replaces: Option<Vec<String>>§provides: Option<Vec<String>>§extension: Option<ExtensionInfo>§rollback: Option<bool>§updates: Option<Vec<UpdateInfo>>§hooks: Option<Hooks>§service: Option<Service>§backup: Option<Vec<String>>§installed_size: Option<u64>§archive_size: Option<u64>§sandbox: Option<SandboxConfig>§completions: Option<Vec<ShellCompletion>>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