use default_struct_builder::DefaultBuilder;
#[derive(DefaultBuilder, Clone)]
#[allow(dead_code)]
pub struct UseGeolocationOptions {
pub(crate) immediate: bool,
enable_high_accuracy: bool,
maximum_age: u32,
timeout: u32,
}
impl Default for UseGeolocationOptions {
fn default() -> Self {
Self {
enable_high_accuracy: false,
maximum_age: 30000,
timeout: 27000,
immediate: true,
}
}
}
#[cfg(not(feature = "ssr"))]
impl UseGeolocationOptions {
pub(crate) fn as_position_options(&self) -> web_sys::PositionOptions {
let UseGeolocationOptions {
enable_high_accuracy,
maximum_age,
timeout,
..
} = self;
let options = web_sys::PositionOptions::new();
options.set_enable_high_accuracy(*enable_high_accuracy);
options.set_maximum_age(*maximum_age);
options.set_timeout(*timeout);
options
}
}