use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct LinkUnfurlNode {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "visible", skip_serializing_if = "Option::is_none")]
pub visible: Option<bool>,
#[serde(rename = "locked", skip_serializing_if = "Option::is_none")]
pub locked: Option<bool>,
#[serde(rename = "isFixed", skip_serializing_if = "Option::is_none")]
pub is_fixed: Option<bool>,
#[serde(rename = "scrollBehavior")]
pub scroll_behavior: ScrollBehavior,
#[serde(rename = "rotation", skip_serializing_if = "Option::is_none")]
pub rotation: Option<f64>,
#[serde(rename = "componentPropertyReferences", skip_serializing_if = "Option::is_none")]
pub component_property_references: Option<std::collections::HashMap<String, String>>,
#[serde(rename = "pluginData", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub plugin_data: Option<Option<serde_json::Value>>,
#[serde(rename = "sharedPluginData", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub shared_plugin_data: Option<Option<serde_json::Value>>,
#[serde(rename = "boundVariables", skip_serializing_if = "Option::is_none")]
pub bound_variables: Option<Box<models::IsLayerTraitBoundVariables>>,
#[serde(rename = "explicitVariableModes", skip_serializing_if = "Option::is_none")]
pub explicit_variable_modes: Option<std::collections::HashMap<String, String>>,
#[serde(rename = "exportSettings", skip_serializing_if = "Option::is_none")]
pub export_settings: Option<Vec<models::ExportSetting>>,
}
impl LinkUnfurlNode {
pub fn new(id: String, name: String, scroll_behavior: ScrollBehavior) -> LinkUnfurlNode {
LinkUnfurlNode {
id,
name,
visible: None,
locked: None,
is_fixed: None,
scroll_behavior,
rotation: None,
component_property_references: None,
plugin_data: None,
shared_plugin_data: None,
bound_variables: None,
explicit_variable_modes: None,
export_settings: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ScrollBehavior {
#[serde(rename = "SCROLLS")]
Scrolls,
#[serde(rename = "FIXED")]
Fixed,
#[serde(rename = "STICKY_SCROLLS")]
StickyScrolls,
}
impl Default for ScrollBehavior {
fn default() -> ScrollBehavior {
Self::Scrolls
}
}