figma_api/models/
trigger.rs

1/*
2 * Figma API
3 *
4 * This is the OpenAPI specification for the [Figma REST API](https://www.figma.com/developers/api).  Note: we are releasing the OpenAPI specification as a beta given the large surface area and complexity of the REST API. If you notice any inaccuracies with the specification, please [file an issue](https://github.com/figma/rest-api-spec/issues).
5 *
6 * The version of the OpenAPI document: 0.31.0
7 * Contact: support@figma.com
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14/// Trigger : The `\"ON_HOVER\"` and `\"ON_PRESS\"` trigger types revert the navigation when the trigger is finished (the result is temporary).  `\"MOUSE_ENTER\"`, `\"MOUSE_LEAVE\"`, `\"MOUSE_UP\"` and `\"MOUSE_DOWN\"` are permanent, one-way navigation. The `delay` parameter requires the trigger to be held for a certain duration of time before the action occurs. Both `timeout` and `delay` values are in milliseconds. The `\"ON_MEDIA_HIT\"` and `\"ON_MEDIA_END\"` trigger types can only trigger from a video.  They fire when a video reaches a certain time or ends. The `timestamp` value is in seconds.
15/// The `\"ON_HOVER\"` and `\"ON_PRESS\"` trigger types revert the navigation when the trigger is finished (the result is temporary).  `\"MOUSE_ENTER\"`, `\"MOUSE_LEAVE\"`, `\"MOUSE_UP\"` and `\"MOUSE_DOWN\"` are permanent, one-way navigation. The `delay` parameter requires the trigger to be held for a certain duration of time before the action occurs. Both `timeout` and `delay` values are in milliseconds. The `\"ON_MEDIA_HIT\"` and `\"ON_MEDIA_END\"` trigger types can only trigger from a video.  They fire when a video reaches a certain time or ends. The `timestamp` value is in seconds.
16#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
17#[serde(untagged)]
18pub enum Trigger {
19    TriggerOneOf(Box<models::TriggerOneOf>),
20    AfterTimeoutTrigger(Box<models::AfterTimeoutTrigger>),
21    TriggerOneOf1(Box<models::TriggerOneOf1>),
22    OnKeyDownTrigger(Box<models::OnKeyDownTrigger>),
23    OnMediaHitTrigger(Box<models::OnMediaHitTrigger>),
24    TriggerOneOf2(Box<models::TriggerOneOf2>),
25}
26
27impl Default for Trigger {
28    fn default() -> Self {
29        Self::TriggerOneOf(Default::default())
30    }
31}
32/// 
33#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
34pub enum Type {
35    #[serde(rename = "ON_CLICK")]
36    OnClick,
37    #[serde(rename = "ON_HOVER")]
38    OnHover,
39    #[serde(rename = "ON_PRESS")]
40    OnPress,
41    #[serde(rename = "ON_DRAG")]
42    OnDrag,
43    #[serde(rename = "AFTER_TIMEOUT")]
44    AfterTimeout,
45    #[serde(rename = "MOUSE_ENTER")]
46    MouseEnter,
47    #[serde(rename = "MOUSE_LEAVE")]
48    MouseLeave,
49    #[serde(rename = "MOUSE_UP")]
50    MouseUp,
51    #[serde(rename = "MOUSE_DOWN")]
52    MouseDown,
53    #[serde(rename = "ON_KEY_DOWN")]
54    OnKeyDown,
55    #[serde(rename = "ON_MEDIA_HIT")]
56    OnMediaHit,
57    #[serde(rename = "ON_MEDIA_END")]
58    OnMediaEnd,
59}
60
61impl Default for Type {
62    fn default() -> Type {
63        Self::OnClick
64    }
65}
66/// 
67#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
68pub enum Device {
69    #[serde(rename = "KEYBOARD")]
70    Keyboard,
71    #[serde(rename = "XBOX_ONE")]
72    XboxOne,
73    #[serde(rename = "PS4")]
74    Ps4,
75    #[serde(rename = "SWITCH_PRO")]
76    SwitchPro,
77    #[serde(rename = "UNKNOWN_CONTROLLER")]
78    UnknownController,
79}
80
81impl Default for Device {
82    fn default() -> Device {
83        Self::Keyboard
84    }
85}
86