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