Rekindle.Plugin behaviour (Rekindle v0.1.7)

Copy Markdown View Source

Contract for a Rust UI framework supported by Rekindle.

One plugin is selected for an application. Plugins declare client source, Cargo requirements, and browser host information; they do not run builds or own development processes.

Summary

Types

builtin()

@type builtin() :: :gpui | :egui | :slint

configured()

@type configured() :: module() | {module(), keyword()}

Callbacks

name()

@callback name() :: String.t()

spec(keyword)

@callback spec(keyword()) :: Rekindle.Plugin.Spec.t()

Functions

builtin(name)

@spec builtin(builtin() | String.t()) :: {:ok, module()} | :error

builtin_names()

@spec builtin_names() :: [builtin()]

load(configured)

@spec load(configured()) ::
  {:ok, {module(), keyword(), Rekindle.Plugin.Spec.t()}} | {:error, String.t()}

name(configured)

@spec name(configured()) :: String.t()

spec(configured)

@spec spec(configured()) :: Rekindle.Plugin.Spec.t()