refactor: rename WIT contract fai:platform/fai:studio-plugin->chain:*
Tracks the platform WIT ABI rename. Plugin world package becomes chain:studio-plugin and host imports chain:platform/host. Crate name stays fai-plugin-sdk (vendor namespace) for now. Signed-off-by: flemming-it <sf@flemming.it>
This commit is contained in:
parent
25353adb43
commit
0b60b71360
5 changed files with 23 additions and 23 deletions
|
|
@ -27,7 +27,7 @@
|
||||||
# use fai_plugin_sdk::{export_plugin, bindings};
|
# use fai_plugin_sdk::{export_plugin, bindings};
|
||||||
#
|
#
|
||||||
# struct MyTheme;
|
# struct MyTheme;
|
||||||
# impl bindings::exports::fai::studio_plugin::theme::Guest for MyTheme {
|
# impl bindings::exports::chain::studio_plugin::theme::Guest for MyTheme {
|
||||||
# fn theme_for(brightness: String) -> Result<_, _> { ... }
|
# fn theme_for(brightness: String) -> Result<_, _> { ... }
|
||||||
# }
|
# }
|
||||||
#
|
#
|
||||||
|
|
@ -56,7 +56,7 @@ crate-type = ["rlib"]
|
||||||
wit-bindgen = "0.36"
|
wit-bindgen = "0.36"
|
||||||
|
|
||||||
[package.metadata.component]
|
[package.metadata.component]
|
||||||
package = "fai:studio-plugin-sdk"
|
package = "chain:studio-plugin-sdk"
|
||||||
|
|
||||||
[package.metadata.component.target]
|
[package.metadata.component.target]
|
||||||
path = "wit"
|
path = "wit"
|
||||||
|
|
|
||||||
16
README.md
16
README.md
|
|
@ -60,13 +60,13 @@ fai-plugin-sdk = { git = "https://git.flemming.ai/fai/plugin-sdk-rust", branch =
|
||||||
// src/lib.rs of your plugin
|
// src/lib.rs of your plugin
|
||||||
use fai_plugin_sdk::{bindings, export_plugin};
|
use fai_plugin_sdk::{bindings, export_plugin};
|
||||||
|
|
||||||
type ColorScheme = bindings::fai::studio_plugin::plugin_types::ColorScheme;
|
type ColorScheme = bindings::chain::studio_plugin::plugin_types::ColorScheme;
|
||||||
type PluginError = bindings::fai::studio_plugin::plugin_types::PluginError;
|
type PluginError = bindings::chain::studio_plugin::plugin_types::PluginError;
|
||||||
type RenderedOutput = bindings::fai::studio_plugin::plugin_types::RenderedOutput;
|
type RenderedOutput = bindings::chain::studio_plugin::plugin_types::RenderedOutput;
|
||||||
|
|
||||||
struct MyPlugin;
|
struct MyPlugin;
|
||||||
|
|
||||||
impl bindings::exports::fai::studio_plugin::theme::Guest for MyPlugin {
|
impl bindings::exports::chain::studio_plugin::theme::Guest for MyPlugin {
|
||||||
fn theme_for(brightness: String) -> Result<ColorScheme, PluginError> {
|
fn theme_for(brightness: String) -> Result<ColorScheme, PluginError> {
|
||||||
// Return a ColorScheme or PluginError::Declined.
|
// Return a ColorScheme or PluginError::Declined.
|
||||||
}
|
}
|
||||||
|
|
@ -74,12 +74,12 @@ impl bindings::exports::fai::studio_plugin::theme::Guest for MyPlugin {
|
||||||
|
|
||||||
// v0.1: every plugin must declare all three hooks. Plugins
|
// v0.1: every plugin must declare all three hooks. Plugins
|
||||||
// that don't actually serve a hook return Declined.
|
// that don't actually serve a hook return Declined.
|
||||||
impl bindings::exports::fai::studio_plugin::translate::Guest for MyPlugin {
|
impl bindings::exports::chain::studio_plugin::translate::Guest for MyPlugin {
|
||||||
fn translate(_: String, _: String, _: String) -> Result<String, PluginError> {
|
fn translate(_: String, _: String, _: String) -> Result<String, PluginError> {
|
||||||
Err(PluginError::Declined("not a translate plugin".to_string()))
|
Err(PluginError::Declined("not a translate plugin".to_string()))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
impl bindings::exports::fai::studio_plugin::output_view::Guest for MyPlugin {
|
impl bindings::exports::chain::studio_plugin::output_view::Guest for MyPlugin {
|
||||||
fn render(_: String, _: Vec<u8>) -> Result<RenderedOutput, PluginError> {
|
fn render(_: String, _: Vec<u8>) -> Result<RenderedOutput, PluginError> {
|
||||||
Err(PluginError::Declined("not a view plugin".to_string()))
|
Err(PluginError::Declined("not a view plugin".to_string()))
|
||||||
}
|
}
|
||||||
|
|
@ -99,10 +99,10 @@ fai pack . -o my-plugin-0.1.0.fai
|
||||||
|
|
||||||
```
|
```
|
||||||
wit/
|
wit/
|
||||||
├── studio-plugin.wit # main world, fai:studio-plugin@0.1.0
|
├── studio-plugin.wit # main world, chain:studio-plugin@0.1.0
|
||||||
└── deps/
|
└── deps/
|
||||||
└── platform/
|
└── platform/
|
||||||
└── world.wit # fai:platform@1.0.0 (host imports)
|
└── world.wit # chain:platform@1.0.0 (host imports)
|
||||||
```
|
```
|
||||||
|
|
||||||
Both files are verbatim copies of the authoritative versions
|
Both files are verbatim copies of the authoritative versions
|
||||||
|
|
|
||||||
20
src/lib.rs
20
src/lib.rs
|
|
@ -43,7 +43,7 @@ pub mod bindings {
|
||||||
world: "studio-plugin",
|
world: "studio-plugin",
|
||||||
path: "wit",
|
path: "wit",
|
||||||
// Generate bindings for the entire WIT package
|
// Generate bindings for the entire WIT package
|
||||||
// (incl. fai:platform/host that studio-plugin imports
|
// (incl. chain:platform/host that studio-plugin imports
|
||||||
// for log emission), so plugins don't need a separate
|
// for log emission), so plugins don't need a separate
|
||||||
// `with: …` mapping.
|
// `with: …` mapping.
|
||||||
generate_all,
|
generate_all,
|
||||||
|
|
@ -59,12 +59,12 @@ pub mod bindings {
|
||||||
// v0.1: plugin authors reference paths inside `bindings::`
|
// v0.1: plugin authors reference paths inside `bindings::`
|
||||||
// directly. The typical ones are:
|
// directly. The typical ones are:
|
||||||
//
|
//
|
||||||
// bindings::exports::fai::studio_plugin::theme::Guest
|
// bindings::exports::chain::studio_plugin::theme::Guest
|
||||||
// bindings::exports::fai::studio_plugin::translate::Guest
|
// bindings::exports::chain::studio_plugin::translate::Guest
|
||||||
// bindings::exports::fai::studio_plugin::output_view::Guest
|
// bindings::exports::chain::studio_plugin::output_view::Guest
|
||||||
// bindings::fai::studio_plugin::plugin_types::ColorScheme
|
// bindings::chain::studio_plugin::plugin_types::ColorScheme
|
||||||
// bindings::fai::studio_plugin::plugin_types::PluginError
|
// bindings::chain::studio_plugin::plugin_types::PluginError
|
||||||
// bindings::fai::studio_plugin::plugin_types::RenderedOutput
|
// bindings::chain::studio_plugin::plugin_types::RenderedOutput
|
||||||
//
|
//
|
||||||
// Stable re-exports under terser names land in v0.2 — they
|
// Stable re-exports under terser names land in v0.2 — they
|
||||||
// have to wait for the proc-macro that materialises the
|
// have to wait for the proc-macro that materialises the
|
||||||
|
|
@ -78,10 +78,10 @@ pub mod bindings {
|
||||||
/// use fai_plugin_sdk::{export_plugin, bindings};
|
/// use fai_plugin_sdk::{export_plugin, bindings};
|
||||||
///
|
///
|
||||||
/// struct MyTheme;
|
/// struct MyTheme;
|
||||||
/// impl bindings::exports::fai::studio_plugin::theme::Guest for MyTheme {
|
/// impl bindings::exports::chain::studio_plugin::theme::Guest for MyTheme {
|
||||||
/// fn theme_for(b: String)
|
/// fn theme_for(b: String)
|
||||||
/// -> Result<bindings::fai::studio_plugin::plugin_types::ColorScheme,
|
/// -> Result<bindings::chain::studio_plugin::plugin_types::ColorScheme,
|
||||||
/// bindings::fai::studio_plugin::plugin_types::PluginError>
|
/// bindings::chain::studio_plugin::plugin_types::PluginError>
|
||||||
/// {
|
/// {
|
||||||
/// // ...
|
/// // ...
|
||||||
/// }
|
/// }
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@
|
||||||
// stable, ergonomic surface. That is what protects modules
|
// stable, ergonomic surface. That is what protects modules
|
||||||
// from any future evolution of this contract.
|
// from any future evolution of this contract.
|
||||||
|
|
||||||
package fai:platform@1.0.0;
|
package chain:platform@1.0.0;
|
||||||
|
|
||||||
/// Types that flow between the host (hub) and modules.
|
/// Types that flow between the host (hub) and modules.
|
||||||
interface types {
|
interface types {
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
// hook function per declared `studio_extension.hook` in
|
// hook function per declared `studio_extension.hook` in
|
||||||
// module.yaml, and renders / wires the result.
|
// module.yaml, and renders / wires the result.
|
||||||
|
|
||||||
package fai:studio-plugin@0.1.0;
|
package chain:studio-plugin@0.1.0;
|
||||||
|
|
||||||
// =============================================================
|
// =============================================================
|
||||||
// Shared types
|
// Shared types
|
||||||
|
|
@ -177,7 +177,7 @@ world studio-plugin {
|
||||||
/// Plugins import the same `host` interface as flow modules,
|
/// Plugins import the same `host` interface as flow modules,
|
||||||
/// so they can emit structured logs without a separate
|
/// so they can emit structured logs without a separate
|
||||||
/// bridge. Logs flow into the hub's event log.
|
/// bridge. Logs flow into the hub's event log.
|
||||||
import fai:platform/host@1.0.0;
|
import chain:platform/host@1.0.0;
|
||||||
|
|
||||||
/// Hook exports. Each is optional; the hub introspects the
|
/// Hook exports. Each is optional; the hub introspects the
|
||||||
/// component to learn which the plugin supports.
|
/// component to learn which the plugin supports.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue