pub struct ExtensionManifest {
pub name: String,
pub version: String,
pub description: String,
pub author: String,
pub permissions: Vec<ExtensionPermission>,
pub config_schema: Option<Value>,
}Expand description
Metadata describing an extension.
Every extension must provide a manifest (either statically via the trait or loaded from a manifest file alongside the shared library).
Fields§
§name: StringUnique extension name (e.g. “my-deploy-tool”)
version: StringSemantic version string (e.g. “1.2.0”)
description: StringHuman-readable description
Author / maintainer
permissions: Vec<ExtensionPermission>Permissions required by this extension
config_schema: Option<Value>Optional JSON Schema for extension-specific configuration
Implementations§
Source§impl ExtensionManifest
impl ExtensionManifest
Sourcepub fn new(name: impl Into<String>, version: impl Into<String>) -> Self
pub fn new(name: impl Into<String>, version: impl Into<String>) -> Self
Create a minimal manifest with just a name and version.
Sourcepub fn with_description(self, desc: impl Into<String>) -> Self
pub fn with_description(self, desc: impl Into<String>) -> Self
Builder: set description.
Builder: set author.
Sourcepub fn with_permission(self, perm: ExtensionPermission) -> Self
pub fn with_permission(self, perm: ExtensionPermission) -> Self
Builder: add a permission.
Sourcepub fn with_config_schema(self, schema: Value) -> Self
pub fn with_config_schema(self, schema: Value) -> Self
Builder: set config schema.
Sourcepub fn has_permission(&self, perm: ExtensionPermission) -> bool
pub fn has_permission(&self, perm: ExtensionPermission) -> bool
Check whether the extension requests a particular permission.
Trait Implementations§
Source§impl Clone for ExtensionManifest
impl Clone for ExtensionManifest
Source§fn clone(&self) -> ExtensionManifest
fn clone(&self) -> ExtensionManifest
Returns a duplicate of the value. Read more
1.0.0 · 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 ExtensionManifest
impl Debug for ExtensionManifest
Source§impl<'de> Deserialize<'de> for ExtensionManifest
impl<'de> Deserialize<'de> for ExtensionManifest
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 ExtensionManifest
impl RefUnwindSafe for ExtensionManifest
impl Send for ExtensionManifest
impl Sync for ExtensionManifest
impl Unpin for ExtensionManifest
impl UnsafeUnpin for ExtensionManifest
impl UnwindSafe for ExtensionManifest
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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