@ -3,10 +3,10 @@
// SPDX-License-Identifier: MIT
use serde ::{ Deserialize , Serialize } ;
use specta ::Type ;
use tauri ::plugin ::PermissionState ;
#[ derive(Debug, Clone, Default, Serialize, Deserialize, Type) ]
#[ derive(Debug, Clone, Default, Serialize, Deserialize) ]
#[ cfg_attr(feature = " specta " , derive(specta::Type)) ]
#[ serde(rename_all = " camelCase " ) ]
pub struct PermissionStatus {
/// Permission state for the location alias.
@ -25,7 +25,8 @@ pub struct PermissionStatus {
pub coarse_location : PermissionState ,
}
#[ derive(Debug, Clone, Default, Serialize, Deserialize, Type) ]
#[ derive(Debug, Clone, Default, Serialize, Deserialize) ]
#[ cfg_attr(feature = " specta " , derive(specta::Type)) ]
#[ serde(rename_all = " camelCase " ) ]
pub struct PositionOptions {
/// High accuracy mode (such as GPS, if available)
@ -46,14 +47,16 @@ pub struct PositionOptions {
pub maximum_age : u32 ,
}
#[ derive(Debug, Clone, Serialize, Deserialize, Type) ]
#[ derive(Debug, Clone, Serialize, Deserialize) ]
#[ cfg_attr(feature = " specta " , derive(specta::Type)) ]
#[ serde(rename_all = " camelCase " ) ]
pub enum PermissionType {
Location ,
CoarseLocation ,
}
#[ derive(Debug, Clone, Default, Serialize, Deserialize, Type) ]
#[ derive(Debug, Clone, Default, Serialize, Deserialize) ]
#[ cfg_attr(feature = " specta " , derive(specta::Type)) ]
#[ serde(rename_all = " camelCase " ) ]
pub struct Coordinates {
/// Latitude in decimal degrees.
@ -73,7 +76,8 @@ pub struct Coordinates {
pub heading : Option < f64 > ,
}
#[ derive(Debug, Clone, Default, Serialize, Deserialize, Type) ]
#[ derive(Debug, Clone, Default, Serialize, Deserialize) ]
#[ cfg_attr(feature = " specta " , derive(specta::Type)) ]
#[ serde(rename_all = " camelCase " ) ]
pub struct Position {
/// Creation time for these coordinates.
@ -83,7 +87,8 @@ pub struct Position {
pub coords : Coordinates ,
}
#[ derive(Debug, Clone, Serialize, Deserialize, Type) ]
#[ derive(Debug, Clone, Serialize, Deserialize) ]
#[ cfg_attr(feature = " specta " , derive(specta::Type)) ]
#[ serde(untagged) ]
pub enum WatchEvent {
Position ( Position ) ,