libobs_wrapper\data\properties\types/
button.rs1use getters0::Getters;
2
3use crate::data::properties::{get_enum, get_opt_str, macros::assert_type, ObsButtonType};
4
5use super::PropertyCreationInfo;
6
7#[derive(Debug, Getters, Clone)]
8#[skip_new]
9pub struct ObsButtonProperty {
10 name: String,
11 description: Option<String>,
12 button_type: ObsButtonType,
13 url: Option<String>,
14}
15
16impl From<PropertyCreationInfo> for ObsButtonProperty {
17 fn from(
18 PropertyCreationInfo {
19 name,
20 description,
21 pointer,
22 }: PropertyCreationInfo,
23 ) -> Self {
24 assert_type!(Button, pointer);
25
26 let url = get_opt_str!(pointer, button_url);
27 let button_type = get_enum!(pointer, button_type, ObsButtonType);
28
29 Self {
30 name,
31 description,
32 button_type,
33 url,
34 }
35 }
36}