figma_api/models/
is_layer_trait.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct IsLayerTrait {
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}
50
51impl IsLayerTrait {
52 pub fn new(id: String, name: String, scroll_behavior: ScrollBehavior) -> IsLayerTrait {
53 IsLayerTrait {
54 id,
55 name,
56 visible: None,
57 locked: None,
58 is_fixed: None,
59 scroll_behavior,
60 rotation: None,
61 component_property_references: None,
62 plugin_data: None,
63 shared_plugin_data: None,
64 bound_variables: None,
65 explicit_variable_modes: None,
66 }
67 }
68}
69#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
71pub enum ScrollBehavior {
72 #[serde(rename = "SCROLLS")]
73 Scrolls,
74 #[serde(rename = "FIXED")]
75 Fixed,
76 #[serde(rename = "STICKY_SCROLLS")]
77 StickyScrolls,
78}
79
80impl Default for ScrollBehavior {
81 fn default() -> ScrollBehavior {
82 Self::Scrolls
83 }
84}
85