webarcade_api/plugin.rs
1//! Plugin trait and metadata definitions
2
3use serde::{Deserialize, Serialize};
4
5/// Plugin metadata
6#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct PluginMetadata {
8 pub id: String,
9 pub name: String,
10 pub version: String,
11 pub description: String,
12 pub author: String,
13 pub dependencies: Vec<String>,
14}
15
16/// Plugin trait - all plugins must implement this
17pub trait Plugin: Send + Sync {
18 /// Get plugin metadata
19 fn metadata(&self) -> PluginMetadata;
20}