figma_api/models/
embed_node.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct EmbedNode {
16 #[serde(rename = "id")]
18 pub id: String,
19 #[serde(rename = "name")]
21 pub name: String,
22 #[serde(rename = "visible", skip_serializing_if = "Option::is_none")]
24 pub visible: Option<bool>,
25 #[serde(rename = "locked", skip_serializing_if = "Option::is_none")]
27 pub locked: Option<bool>,
28 #[serde(rename = "isFixed", skip_serializing_if = "Option::is_none")]
30 pub is_fixed: Option<bool>,
31 #[serde(rename = "scrollBehavior")]
33 pub scroll_behavior: ScrollBehavior,
34 #[serde(rename = "rotation", skip_serializing_if = "Option::is_none")]
36 pub rotation: Option<f64>,
37 #[serde(rename = "componentPropertyReferences", skip_serializing_if = "Option::is_none")]
39 pub component_property_references: Option<std::collections::HashMap<String, String>>,
40 #[serde(rename = "pluginData", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
41 pub plugin_data: Option<Option<serde_json::Value>>,
42 #[serde(rename = "sharedPluginData", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
43 pub shared_plugin_data: Option<Option<serde_json::Value>>,
44 #[serde(rename = "boundVariables", skip_serializing_if = "Option::is_none")]
45 pub bound_variables: Option<Box<models::IsLayerTraitBoundVariables>>,
46 #[serde(rename = "explicitVariableModes", skip_serializing_if = "Option::is_none")]
48 pub explicit_variable_modes: Option<std::collections::HashMap<String, String>>,
49 #[serde(rename = "exportSettings", skip_serializing_if = "Option::is_none")]
51 pub export_settings: Option<Vec<models::ExportSetting>>,
52}
53
54impl EmbedNode {
55 pub fn new(id: String, name: String, scroll_behavior: ScrollBehavior) -> EmbedNode {
56 EmbedNode {
57 id,
58 name,
59 visible: None,
60 locked: None,
61 is_fixed: None,
62 scroll_behavior,
63 rotation: None,
64 component_property_references: None,
65 plugin_data: None,
66 shared_plugin_data: None,
67 bound_variables: None,
68 explicit_variable_modes: None,
69 export_settings: None,
70 }
71 }
72}
73#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
75pub enum ScrollBehavior {
76 #[serde(rename = "SCROLLS")]
77 Scrolls,
78 #[serde(rename = "FIXED")]
79 Fixed,
80 #[serde(rename = "STICKY_SCROLLS")]
81 StickyScrolls,
82}
83
84impl Default for ScrollBehavior {
85 fn default() -> ScrollBehavior {
86 Self::Scrolls
87 }
88}
89