Struct FrameNode

Source
pub struct FrameNode {
Show 71 fields pub id: String, pub name: String, pub visible: Option<bool>, pub locked: Option<bool>, pub is_fixed: Option<bool>, pub scroll_behavior: ScrollBehavior, pub rotation: Option<f64>, pub component_property_references: Option<HashMap<String, String>>, pub plugin_data: Option<Option<Value>>, pub shared_plugin_data: Option<Option<Value>>, pub bound_variables: Option<Box<IsLayerTraitBoundVariables>>, pub explicit_variable_modes: Option<HashMap<String, String>>, pub blend_mode: BlendMode, pub opacity: Option<f64>, pub children: Vec<SubcanvasNode>, pub preserve_ratio: Option<bool>, pub constraints: Option<Box<LayoutConstraint>>, pub relative_transform: Option<Vec<Vec<f64>>>, pub size: Option<Box<Vector>>, pub layout_align: Option<LayoutAlign>, pub layout_grow: Option<f64>, pub layout_positioning: Option<LayoutPositioning>, pub min_width: Option<f64>, pub max_width: Option<f64>, pub min_height: Option<f64>, pub max_height: Option<f64>, pub layout_sizing_horizontal: Option<LayoutSizingHorizontal>, pub layout_sizing_vertical: Option<LayoutSizingVertical>, pub clips_content: bool, pub background: Option<Vec<Paint>>, pub background_color: Option<Box<Rgba>>, pub layout_grids: Option<Vec<LayoutGrid>>, pub overflow_direction: Option<OverflowDirection>, pub layout_mode: Option<LayoutMode>, pub primary_axis_sizing_mode: Option<PrimaryAxisSizingMode>, pub counter_axis_sizing_mode: Option<CounterAxisSizingMode>, pub primary_axis_align_items: Option<PrimaryAxisAlignItems>, pub counter_axis_align_items: Option<CounterAxisAlignItems>, pub padding_left: Option<f64>, pub padding_right: Option<f64>, pub padding_top: Option<f64>, pub padding_bottom: Option<f64>, pub item_spacing: Option<f64>, pub item_reverse_z_index: Option<bool>, pub strokes_included_in_layout: Option<bool>, pub layout_wrap: Option<LayoutWrap>, pub counter_axis_spacing: Option<f64>, pub counter_axis_align_content: Option<CounterAxisAlignContent>, pub corner_radius: Option<f64>, pub corner_smoothing: Option<f64>, pub rectangle_corner_radii: Option<Vec<f64>>, pub fills: Vec<Paint>, pub styles: Option<HashMap<String, String>>, pub strokes: Option<Vec<Paint>>, pub stroke_weight: Option<f64>, pub stroke_align: Option<StrokeAlign>, pub stroke_join: Option<StrokeJoin>, pub stroke_dashes: Option<Vec<f64>>, pub fill_geometry: Option<Vec<Path>>, pub stroke_geometry: Option<Vec<Path>>, pub stroke_cap: Option<StrokeCap>, pub stroke_miter_angle: Option<f64>, pub export_settings: Option<Vec<ExportSetting>>, pub effects: Vec<Effect>, pub is_mask: Option<bool>, pub mask_type: Option<MaskType>, pub is_mask_outline: Option<bool>, pub transition_node_id: Option<String>, pub transition_duration: Option<f64>, pub transition_easing: Option<EasingType>, pub individual_stroke_weights: Option<Box<StrokeWeights>>,
}

Fields§

§id: String

A string uniquely identifying this node within the document.

§name: String

The name given to the node by the user in the tool.

§visible: Option<bool>

Whether or not the node is visible on the canvas.

§locked: Option<bool>

If true, layer is locked and cannot be edited

§is_fixed: Option<bool>

Whether the layer is fixed while the parent is scrolling

§scroll_behavior: ScrollBehavior

How layer should be treated when the frame is resized

§rotation: Option<f64>

The rotation of the node, if not 0.

§component_property_references: Option<HashMap<String, String>>

A mapping of a layer’s property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component’s or component set’s componentPropertyDefinitions.

§plugin_data: Option<Option<Value>>§shared_plugin_data: Option<Option<Value>>§bound_variables: Option<Box<IsLayerTraitBoundVariables>>§explicit_variable_modes: Option<HashMap<String, String>>

A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.

§blend_mode: BlendMode

How this node blends with nodes behind it in the scene (see blend mode section for more details)

§opacity: Option<f64>

Opacity of the node

§children: Vec<SubcanvasNode>

An array of nodes that are direct children of this node

§preserve_ratio: Option<bool>

Keep height and width constrained to same ratio.

§constraints: Option<Box<LayoutConstraint>>

Horizontal and vertical layout constraints for node.

§relative_transform: Option<Vec<Vec<f64>>>

A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew. The identity transform is [[1, 0, 0], [0, 1, 0]]. A translation matrix will typically look like: [[1, 0, tx], [0, 1, ty]] and a rotation matrix will typically look like: [[cos(angle), sin(angle), 0], [-sin(angle), cos(angle), 0]] Another way to think about this transform is as three vectors: - The x axis (t[0][0], t[1][0]) - The y axis (t[0][1], t[1][1]) - The translation offset (t[0][2], t[1][2]) The most common usage of the Transform matrix is the relativeTransform property. This particular usage of the matrix has a few additional restrictions. The translation offset can take on any value but we do enforce that the axis vectors are unit vectors (i.e. have length 1). The axes are not required to be at 90° angles to each other.

§size: Option<Box<Vector>>

Width and height of element. This is different from the width and height of the bounding box in that the absolute bounding box represents the element after scaling and rotation. Only present if geometry=paths is passed.

§layout_align: Option<LayoutAlign>

Determines if the layer should stretch along the parent’s counter axis. This property is only provided for direct children of auto-layout frames. - INHERIT - STRETCH In previous versions of auto layout, determined how the layer is aligned inside an auto-layout frame. This property is only provided for direct children of auto-layout frames. - MIN - CENTER - MAX - STRETCH In horizontal auto-layout frames, "MIN" and "MAX" correspond to "TOP" and "BOTTOM". In vertical auto-layout frames, "MIN" and "MAX" correspond to "LEFT" and "RIGHT".

§layout_grow: Option<f64>

This property is applicable only for direct children of auto-layout frames, ignored otherwise. Determines whether a layer should stretch along the parent’s primary axis. A 0 corresponds to a fixed size and 1 corresponds to stretch.

§layout_positioning: Option<LayoutPositioning>

Determines whether a layer’s size and position should be determined by auto-layout settings or manually adjustable.

§min_width: Option<f64>

The minimum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.

§max_width: Option<f64>

The maximum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.

§min_height: Option<f64>

The minimum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.

§max_height: Option<f64>

The maximum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.

§layout_sizing_horizontal: Option<LayoutSizingHorizontal>

The horizontal sizing setting on this auto-layout frame or frame child. - FIXED - HUG: only valid on auto-layout frames and text nodes - FILL: only valid on auto-layout frame children

§layout_sizing_vertical: Option<LayoutSizingVertical>

The vertical sizing setting on this auto-layout frame or frame child. - FIXED - HUG: only valid on auto-layout frames and text nodes - FILL: only valid on auto-layout frame children

§clips_content: bool

Whether or not this node clip content outside of its bounds

§background: Option<Vec<Paint>>

Background of the node. This is deprecated, as backgrounds for frames are now in the fills field.

§background_color: Option<Box<Rgba>>

Background color of the node. This is deprecated, as frames now support more than a solid color as a background. Please use the fills field instead.

§layout_grids: Option<Vec<LayoutGrid>>

An array of layout grids attached to this node (see layout grids section for more details). GROUP nodes do not have this attribute

§overflow_direction: Option<OverflowDirection>

Whether a node has primary axis scrolling, horizontal or vertical.

§layout_mode: Option<LayoutMode>

Whether this layer uses auto-layout to position its children.

§primary_axis_sizing_mode: Option<PrimaryAxisSizingMode>

Whether the primary axis has a fixed length (determined by the user) or an automatic length (determined by the layout engine). This property is only applicable for auto-layout frames.

§counter_axis_sizing_mode: Option<CounterAxisSizingMode>

Whether the counter axis has a fixed length (determined by the user) or an automatic length (determined by the layout engine). This property is only applicable for auto-layout frames.

§primary_axis_align_items: Option<PrimaryAxisAlignItems>

Determines how the auto-layout frame’s children should be aligned in the primary axis direction. This property is only applicable for auto-layout frames.

§counter_axis_align_items: Option<CounterAxisAlignItems>

Determines how the auto-layout frame’s children should be aligned in the counter axis direction. This property is only applicable for auto-layout frames.

§padding_left: Option<f64>

The padding between the left border of the frame and its children. This property is only applicable for auto-layout frames.

§padding_right: Option<f64>

The padding between the right border of the frame and its children. This property is only applicable for auto-layout frames.

§padding_top: Option<f64>

The padding between the top border of the frame and its children. This property is only applicable for auto-layout frames.

§padding_bottom: Option<f64>

The padding between the bottom border of the frame and its children. This property is only applicable for auto-layout frames.

§item_spacing: Option<f64>

The distance between children of the frame. Can be negative. This property is only applicable for auto-layout frames.

§item_reverse_z_index: Option<bool>

Determines the canvas stacking order of layers in this frame. When true, the first layer will be draw on top. This property is only applicable for auto-layout frames.

§strokes_included_in_layout: Option<bool>

Determines whether strokes are included in layout calculations. When true, auto-layout frames behave like css "box-sizing: border-box". This property is only applicable for auto-layout frames.

§layout_wrap: Option<LayoutWrap>

Whether this auto-layout frame has wrapping enabled.

§counter_axis_spacing: Option<f64>

The distance between wrapped tracks of an auto-layout frame. This property is only applicable for auto-layout frames with layoutWrap: \"WRAP\"

§counter_axis_align_content: Option<CounterAxisAlignContent>

Determines how the auto-layout frame’s wrapped tracks should be aligned in the counter axis direction. This property is only applicable for auto-layout frames with layoutWrap: \"WRAP\".

§corner_radius: Option<f64>

Radius of each corner if a single radius is set for all corners

§corner_smoothing: Option<f64>

A value that lets you control how "smooth" the corners are. Ranges from 0 to 1. 0 is the default and means that the corner is perfectly circular. A value of 0.6 means the corner matches the iOS 7 "squircle" icon shape. Other values produce various other curves.

§rectangle_corner_radii: Option<Vec<f64>>

Array of length 4 of the radius of each corner of the frame, starting in the top left and proceeding clockwise. Values are given in the order top-left, top-right, bottom-right, bottom-left.

§fills: Vec<Paint>

An array of fill paints applied to the node.

§styles: Option<HashMap<String, String>>

A mapping of a StyleType to style ID (see Style) of styles present on this node. The style ID can be used to look up more information about the style in the top-level styles field.

§strokes: Option<Vec<Paint>>

An array of stroke paints applied to the node.

§stroke_weight: Option<f64>

The weight of strokes on the node.

§stroke_align: Option<StrokeAlign>

Position of stroke relative to vector outline, as a string enum - INSIDE: stroke drawn inside the shape boundary - OUTSIDE: stroke drawn outside the shape boundary - CENTER: stroke drawn centered along the shape boundary

§stroke_join: Option<StrokeJoin>

A string enum with value of "MITER", "BEVEL", or "ROUND", describing how corners in vector paths are rendered.

§stroke_dashes: Option<Vec<f64>>

An array of floating point numbers describing the pattern of dash length and gap lengths that the vector stroke will use when drawn. For example a value of [1, 2] indicates that the stroke will be drawn with a dash of length 1 followed by a gap of length 2, repeated.

§fill_geometry: Option<Vec<Path>>

Only specified if parameter geometry=paths is used. An array of paths representing the object fill.

§stroke_geometry: Option<Vec<Path>>

Only specified if parameter geometry=paths is used. An array of paths representing the object stroke.

§stroke_cap: Option<StrokeCap>

A string enum describing the end caps of vector paths.

§stroke_miter_angle: Option<f64>

Only valid if strokeJoin is "MITER". The corner angle, in degrees, below which strokeJoin will be set to "BEVEL" to avoid super sharp corners. By default this is 28.96 degrees.

§export_settings: Option<Vec<ExportSetting>>

An array of export settings representing images to export from the node.

§effects: Vec<Effect>

An array of effects attached to this node (see effects section for more details)

§is_mask: Option<bool>

Does this node mask sibling nodes in front of it?

§mask_type: Option<MaskType>

If this layer is a mask, this property describes the operation used to mask the layer’s siblings. The value may be one of the following: - ALPHA: the mask node’s alpha channel will be used to determine the opacity of each pixel in the masked result. - VECTOR: if the mask node has visible fill paints, every pixel inside the node’s fill regions will be fully visible in the masked result. If the mask has visible stroke paints, every pixel inside the node’s stroke regions will be fully visible in the masked result. - LUMINANCE: the luminance value of each pixel of the mask node will be used to determine the opacity of that pixel in the masked result.

§is_mask_outline: Option<bool>

True if maskType is VECTOR. This field is deprecated; use maskType instead.

§transition_node_id: Option<String>

Node ID of node to transition to in prototyping

§transition_duration: Option<f64>

The duration of the prototyping transition on this node (in milliseconds). This will override the default transition duration on the prototype, for this node.

§transition_easing: Option<EasingType>

The easing curve used in the prototyping transition on this node.

§individual_stroke_weights: Option<Box<StrokeWeights>>

An object including the top, bottom, left, and right stroke weights. Only returned if individual stroke weights are used.

Implementations§

Source§

impl FrameNode

Source

pub fn new( id: String, name: String, scroll_behavior: ScrollBehavior, blend_mode: BlendMode, children: Vec<SubcanvasNode>, clips_content: bool, fills: Vec<Paint>, effects: Vec<Effect>, ) -> FrameNode

Trait Implementations§

Source§

impl Clone for FrameNode

Source§

fn clone(&self) -> FrameNode

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 FrameNode

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for FrameNode

Source§

fn default() -> FrameNode

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for FrameNode

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for FrameNode

Source§

fn eq(&self, other: &FrameNode) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for FrameNode

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for FrameNode

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
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<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> ErasedDestructor for T
where T: 'static,