pub struct PluginArtifact {
pub url: String,
pub sha256: String,
}Expand description
Per-platform downloadable artifact for the URL-install source (fetch logic is a later agent’s job — this is schema-only).
§Archive contract (pinned for Wave-2 fetch code + plugin authors)
url points at an archive, never a raw executable: a .zip or
.tar.gz/.tgz. The installer:
- downloads it, verifies
Self::sha256(lowercase hex, over the raw archive bytes) BEFORE unpacking anything, - unpacks it, and expects exactly one executable at the archive root
named
<plugin id>(unix) or<plugin id>.exe(windows), - places that executable at
<plugin_dir>/bin/<platform>/<plugin id>[.exe]— the exact pathplatform_bin_pathresolves, so${platform_bin}then points at it.
This matches how real release assets ship (e.g. nova’s are
nova-v<ver>-<triple>.zip with nova.exe at the zip root, and a
.tar.gz with nova at the tar root) — a plugin does NOT have to
re-layout its release binaries, it just declares the archive URL + hash.
Fields§
§url: StringArchive URL (.zip / .tar.gz / .tgz) — see the type-level docs.
sha256: StringLowercase hex-encoded sha256 of the raw archive bytes, verified by the installer after download and BEFORE unpacking.
Trait Implementations§
Source§impl Clone for PluginArtifact
impl Clone for PluginArtifact
Source§fn clone(&self) -> PluginArtifact
fn clone(&self) -> PluginArtifact
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for PluginArtifact
impl Debug for PluginArtifact
Source§impl<'de> Deserialize<'de> for PluginArtifact
impl<'de> Deserialize<'de> for PluginArtifact
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for PluginArtifact
impl RefUnwindSafe for PluginArtifact
impl Send for PluginArtifact
impl Sync for PluginArtifact
impl Unpin for PluginArtifact
impl UnsafeUnpin for PluginArtifact
impl UnwindSafe for PluginArtifact
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
Mutably borrows from an owned value. Read more