NodeManifest

Struct NodeManifest 

Source
pub struct NodeManifest {
Show 14 fields pub api_version: u32, pub display_name: String, pub version: String, pub author: String, pub description: String, pub category: NodeCategory, pub tags: Vec<String>, pub model: ExecutionModel, pub parameters: Vec<ShaderParam>, pub ports: Vec<NodePort>, pub output_resolution_scale: f32, pub output_hint: Option<OutputHint>, pub actions: Vec<ActionDef>, pub embedded_textures: Vec<EmbeddedTexture>,
}
Expand description

§========================================================================== Node Manifest

Complete node definition manifest

This is returned by get-manifest() and contains all metadata needed for the host to:

  1. Calculate GPU memory layout (std140)
  2. Build UI widgets
  3. Validate shader bindings
  4. Allocate resources
  5. Register available actions
  6. Display plugin information in marketplace/browser

Fields§

§api_version: u32

API version (must match host’s expected version)

§display_name: String

Display name shown in node palette/graph

§version: String

Plugin metadata for distribution Version string (e.g., “1.0.0”, “2.1.3-beta”)

§author: String

Author/organization name

§description: String

Human-readable description

§category: NodeCategory

Category for UI organization

§tags: Vec<String>

Searchable tags (e.g., [“glitch”, “retro”, “vhs”])

§model: ExecutionModel

Execution model (fragment or compute)

§parameters: Vec<ShaderParam>

List of parameters Host calculates std140 layout from this list Order matters for struct field layout!

§ports: Vec<NodePort>

Port definitions (texture + control) Texture ports map to @group(2) @binding(N) in shader

§output_resolution_scale: f32

Output resolution scale relative to input 1.0 = same size, 0.5 = half size, 2.0 = double size

§output_hint: Option<OutputHint>

Output format hint (optional) Default (None/auto): Rgba8Unorm for all intermediate textures Use hdr/high-precision only for effects requiring wider dynamic range See output-hint variant documentation for details

§actions: Vec<ActionDef>

List of available actions Standard actions (reset, randomize) are handled by host Custom actions require execute-custom-action implementation

§embedded_textures: Vec<EmbeddedTexture>

Embedded textures bundled in this plugin (optional)

These textures are decoded and registered by the host at load time. Use this for asset packs, LUT collections, or fallback images that should be distributed together with the plugin.

Each texture is identified by its key and can be referenced via the TextureSource node or parameter-driven texture switching.

Trait Implementations§

Source§

impl Clone for NodeManifest

Source§

fn clone(&self) -> NodeManifest

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for NodeManifest

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V