Figler.Scene.Node (figler v0.1.0-beta.1)

Copy Markdown View Source

Lightweight projected scene node.

This is a flattened projection of Figler.Schema.NodeChange, backed by the generated Kiwi schema metadata at compile time. It is intentionally smaller than NodeChange so large scenes can be indexed without materializing every schema field.

Summary

Functions

Returns projected scene node field names.

Returns the ParentIndex fields flattened into this projection.

Returns the NodeChange fields consumed by this projection.

Returns the generated Kiwi schema module this projection is derived from.

Types

t()

@type t() :: %Figler.Scene.Node{
  children: term(),
  component_key: term(),
  effect_style_guid: term(),
  fill_count: term(),
  fill_style_guid: term(),
  font_family: term(),
  font_postscript: term(),
  font_size: term(),
  font_style: term(),
  grid_style_guid: term(),
  guid: term(),
  locked: term(),
  name: term(),
  node_type: term(),
  opacity: term(),
  origin_component_key: term(),
  parent_guid: term(),
  position: term(),
  size: term(),
  stroke_count: term(),
  stroke_style_guid: term(),
  text: term(),
  text_style_guid: term(),
  transform: term(),
  visible: term()
}

Functions

field_names()

@spec field_names() :: [atom()]

Returns projected scene node field names.

parent_index_source_fields()

@spec parent_index_source_fields() :: [atom()]

Returns the ParentIndex fields flattened into this projection.

source_fields()

@spec source_fields() :: [atom()]

Returns the NodeChange fields consumed by this projection.

source_module()

@spec source_module() :: module()

Returns the generated Kiwi schema module this projection is derived from.