use serde::{Deserialize, Serialize};
use crate::VarOrBool;
#[derive(
Debug, Deserialize, Serialize, YaSerialize, YaDeserialize, PartialEq, Eq, Default, Clone,
)]
pub struct UsesConfiguration {
#[yaserde(attribute = true, prefix = "android", rename = "reqFiveWayNav")]
pub req_five_way_nav: Option<VarOrBool>,
#[yaserde(attribute = true, prefix = "android", rename = "reqHardKeyboard")]
pub req_hard_keyboard: Option<VarOrBool>,
#[yaserde(attribute = true, prefix = "android", rename = "reqKeyboardType")]
pub req_keyboard_type: Option<ReqKeyboardType>,
#[yaserde(attribute = true, prefix = "android", rename = "reqNavigation")]
pub req_navigation: Option<ReqNavigation>,
#[yaserde(attribute = true, prefix = "android", rename = "reqTouchScreen")]
pub req_touch_screen: Option<ReqTouchScreen>,
}
#[derive(Debug, Deserialize, Serialize, YaSerialize, YaDeserialize, PartialEq, Eq, Clone)]
#[serde(rename_all = "camelCase")]
#[derive(Default)]
pub enum ReqKeyboardType {
#[yaserde(rename = "undefined")]
#[default]
Undefined,
#[yaserde(rename = "nokeys")]
Nokeys,
#[yaserde(rename = "qwerty")]
Qwerty,
#[yaserde(rename = "twelvekey")]
Twelvekey,
}
#[derive(Debug, Deserialize, Serialize, YaSerialize, YaDeserialize, PartialEq, Eq, Clone)]
#[serde(rename_all = "camelCase")]
#[derive(Default)]
pub enum ReqNavigation {
#[yaserde(rename = "undefined")]
#[default]
Undefined,
#[yaserde(rename = "nonav")]
Nonav,
#[yaserde(rename = "dpad")]
Dpad,
#[yaserde(rename = "trackball")]
Trackball,
#[yaserde(rename = "wheel")]
Wheel,
}
#[derive(Debug, Deserialize, Serialize, YaSerialize, YaDeserialize, PartialEq, Eq, Clone)]
#[serde(rename_all = "camelCase")]
#[derive(Default)]
pub enum ReqTouchScreen {
#[yaserde(rename = "undefined")]
#[default]
Undefined,
#[yaserde(rename = "notouch")]
Notouch,
#[yaserde(rename = "stylus")]
Stylus,
#[yaserde(rename = "finger")]
Finger,
}