#[non_exhaustive]pub struct PluginCapabilities {
pub config_reads: Vec<String>,
}Expand description
What a plugin declares it needs beyond the note APIs.
Capabilities are declared by the plugin crate rather than listed centrally in this crate: the plugin owns the integration and therefore knows exactly what it reads, and a central list would duplicate that knowledge and drift from it. The default grants nothing — a plugin that declares nothing gets only the note surface every plugin gets.
The host validates a declaration at mount time, so an over-broad or malformed request stops the server from starting instead of surfacing as a confusing runtime denial.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.config_reads: Vec<String>Exact vault-relative application-config files this plugin may read,
for example .obsidian/plugins/obsidian-tasks-plugin/data.json.
Exact paths, not directory prefixes: a reviewer can see precisely what a plugin reads, and granting a whole plugin folder would hand over files nobody enumerated. A directory-scoped form can be added later if a real plugin needs genuinely dynamic file names.
Implementations§
Source§impl PluginCapabilities
impl PluginCapabilities
Sourcepub fn with_config_read(self, path: impl Into<String>) -> Self
pub fn with_config_read(self, path: impl Into<String>) -> Self
Declare one exact readable config path.
Sourcepub fn validate(&self) -> PluginResult<()>
pub fn validate(&self) -> PluginResult<()>
Validate every declared capability.
Declarations are normalized on the way in, so a plugin cannot declare
.obsidian/../.git/config and have it accepted, and cannot declare a
path in one spelling then request it in another.
Trait Implementations§
Source§impl Clone for PluginCapabilities
impl Clone for PluginCapabilities
Source§fn clone(&self) -> PluginCapabilities
fn clone(&self) -> PluginCapabilities
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PluginCapabilities
impl Debug for PluginCapabilities
Source§impl Default for PluginCapabilities
impl Default for PluginCapabilities
Source§fn default() -> PluginCapabilities
fn default() -> PluginCapabilities
Source§impl<'de> Deserialize<'de> for PluginCapabilities
impl<'de> Deserialize<'de> for PluginCapabilities
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>,
impl Eq for PluginCapabilities
Source§impl PartialEq for PluginCapabilities
impl PartialEq for PluginCapabilities
Source§impl Serialize for PluginCapabilities
impl Serialize for PluginCapabilities
impl StructuralPartialEq for PluginCapabilities
Auto Trait Implementations§
impl Freeze for PluginCapabilities
impl RefUnwindSafe for PluginCapabilities
impl Send for PluginCapabilities
impl Sync for PluginCapabilities
impl Unpin for PluginCapabilities
impl UnsafeUnpin for PluginCapabilities
impl UnwindSafe for PluginCapabilities
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.