shared/model_ui/screens/
settings_preview_connections_actions.rsuse crate::screens::input_fields_and_tags::Precision;
use crate::screens_common::model::previous_connection::PreviousConnection;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Clone)]
pub struct UiSettingsPreviousConnectionsScreenData {
pub ui_previous_connections: Vec<UiPreviousConnection>,
pub ui_unsaved_data: bool,
pub ui_display_save_dialog: bool,
}
#[derive(Serialize, Deserialize, Clone)]
pub struct UiPreviousConnection {
pub internal_index: String,
pub name: Option<String>,
pub base_url: String,
}
pub fn previous_connections_to_ui_previous_connections(
previous_connections: &[PreviousConnection],
) -> Vec<UiPreviousConnection> {
previous_connections
.iter()
.enumerate()
.map(|(index, previous_connection)| UiPreviousConnection {
internal_index: index.to_string(),
name: previous_connection.name.clone(), base_url: previous_connection.base_url.clone(),
})
.collect()
}
#[derive(Serialize, Deserialize, Clone, Default)]
pub enum UiPrecision {
Seconds,
Milliseconds,
Microseconds,
#[default]
Nanoseconds, }
impl From<Precision> for UiPrecision {
fn from(value: Precision) -> Self {
match value {
Precision::Seconds => UiPrecision::Seconds,
Precision::Milliseconds => UiPrecision::Milliseconds,
Precision::Microseconds => UiPrecision::Microseconds,
Precision::Nanoseconds => UiPrecision::Nanoseconds,
}
}
}