pub struct PluginManifest {
pub name: String,
pub version: String,
pub description: String,
pub author: String,
pub homepage: Option<String>,
pub api_version: String,
pub min_scarab_version: String,
pub capabilities: HashSet<Capability>,
pub required_modules: HashSet<FusabiModule>,
pub emoji: Option<String>,
pub color: Option<String>,
pub catchphrase: Option<String>,
}Expand description
Plugin manifest that declares plugin capabilities and requirements
Fields§
§name: StringPlugin name (must be unique)
version: StringPlugin version (semver)
description: StringShort description
Author name
homepage: Option<String>Homepage URL
api_version: StringAPI version this plugin requires
min_scarab_version: StringMinimum Scarab version required
capabilities: HashSet<Capability>Required capabilities
required_modules: HashSet<FusabiModule>Required modules from fusabi-stdlib-ext
emoji: Option<String>Optional visual metadata
color: Option<String>§catchphrase: Option<String>Implementations§
Source§impl PluginManifest
impl PluginManifest
Sourcepub fn validate(&self, current_api_version: &str) -> Result<(), ManifestError>
pub fn validate(&self, current_api_version: &str) -> Result<(), ManifestError>
Validate the manifest against current API version and available capabilities
Sourcepub fn has_capability(&self, capability: &Capability) -> bool
pub fn has_capability(&self, capability: &Capability) -> bool
Check if the plugin declares a specific capability
Sourcepub fn requires_module(&self, module: &FusabiModule) -> bool
pub fn requires_module(&self, module: &FusabiModule) -> bool
Check if the plugin requires a specific module
Sourcepub fn capabilities_list(&self) -> Vec<Capability>
pub fn capabilities_list(&self) -> Vec<Capability>
Get all required capabilities as a sorted list
Sourcepub fn modules_list(&self) -> Vec<FusabiModule>
pub fn modules_list(&self) -> Vec<FusabiModule>
Get all required modules as a sorted list
Trait Implementations§
Source§impl Clone for PluginManifest
impl Clone for PluginManifest
Source§fn clone(&self) -> PluginManifest
fn clone(&self) -> PluginManifest
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 PluginManifest
impl Debug for PluginManifest
Source§impl Default for PluginManifest
impl Default for PluginManifest
Source§impl<'de> Deserialize<'de> for PluginManifest
impl<'de> Deserialize<'de> for PluginManifest
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 PluginManifest
impl RefUnwindSafe for PluginManifest
impl Send for PluginManifest
impl Sync for PluginManifest
impl Unpin for PluginManifest
impl UnsafeUnpin for PluginManifest
impl UnwindSafe for PluginManifest
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.