Skip to main content

alpha2_model/
resource.rs

1use crate::EffectResourceId;
2use serde::{Deserialize, Serialize};
3
4/// Host-resolved, non-media data consumed by one or more visual effects.
5#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
6#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
7#[serde(deny_unknown_fields)]
8pub struct EffectResource {
9    /// Stable identity referenced by effect invocations.
10    pub id: EffectResourceId,
11    /// Resource representation expected by the effect definition.
12    pub kind: EffectResourceKind,
13    /// Opaque host locator. The core never opens it directly.
14    pub locator: String,
15}
16
17/// Portable effect-resource categories supported by the render ABI.
18#[derive(Copy, Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
19#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
20#[serde(rename_all = "snake_case")]
21pub enum EffectResourceKind {
22    /// A cubic, filterable RGB lookup table, normally authored as a `.cube` file.
23    Lut3d,
24}