pub trait BuiltinProvider: Send + Sync {
// Required methods
fn list_builtins(&self) -> Vec<String>;
fn load_builtin(&self, id: &str) -> Result<Vec<u8>, String>;
// Provided methods
fn has_builtin(&self, id: &str) -> bool { ... }
fn get_builtin_metadata(&self, _id: &str) -> Option<BuiltinMetadata> { ... }
}Expand description
Builtin plugin provider interface
Platforms implement this trait to provide access to builtin plugins. Builtins are WASM plugins distributed in a platform-specific way:
- Desktop: mods/builtin/ directory
- WebUI: Bundled in web app assets
- Headless: Embedded via include_bytes!
Required Methods§
Sourcefn list_builtins(&self) -> Vec<String>
fn list_builtins(&self) -> Vec<String>
List all available builtin plugin IDs
Returns IDs in no particular order.
Example: ["chromatic-aberration", "pixelate", "flash"]
Provided Methods§
Sourcefn has_builtin(&self, id: &str) -> bool
fn has_builtin(&self, id: &str) -> bool
Check if a builtin exists
Default implementation scans the list, but platforms may override for more efficient checking.
Sourcefn get_builtin_metadata(&self, _id: &str) -> Option<BuiltinMetadata>
fn get_builtin_metadata(&self, _id: &str) -> Option<BuiltinMetadata>
Get builtin metadata without loading WASM
Optional optimization: Return manifest without full WASM parse. Default implementation returns None (requires full load).