diff --git a/crates/lantern-app/src/application.rs b/crates/lantern-app/src/application.rs index 88b606d8..96326194 100644 --- a/crates/lantern-app/src/application.rs +++ b/crates/lantern-app/src/application.rs @@ -6,13 +6,13 @@ use thiserror::Error; use crate::{ AuditHealth, Authorization, BackupCaptureRequest, BackupRestoreAction, BackupRestoreEffect, - BackupRestoreState, BusError, ConnectionAction, ConnectionAttemptKind, ConnectionEffect, + BackupRestoreState, ConnectionAction, ConnectionAttemptKind, ConnectionEffect, ConnectionFailure, ConnectionStep, ConnectionWizardState, Connectivity, CsvLoggingFaultSummary, CsvLoggingStateView, FaultAction, FaultEffect, FaultTracker, MAX_PARAMETER_BROWSER_VISIBLE, MonitoringAction, MonitoringEffect, OperationState, ParameterAction, ParameterIntentContext, - ProfileRegistry, RestoreConfirmation, SerialConnectError, SessionEffect, SessionFault, - SessionInput, SessionState, SessionStateMachine, WriteConfirmation, WriteConfirmationModel, - WriteEffect, WriteSessionSnapshot, prepare_parameter_intent, + ProfileRegistry, RestoreConfirmation, SessionEffect, SessionInput, SessionState, + SessionStateMachine, WriteConfirmation, WriteConfirmationModel, WriteEffect, + WriteSessionSnapshot, prepare_parameter_intent, }; mod connection; @@ -657,24 +657,6 @@ impl ApplicationRuntime { } } -fn session_fault_for_connect_error(error: &SerialConnectError) -> SessionFault { - match error { - SerialConnectError::Missing { .. } | SerialConnectError::IdentityChanged { .. } => { - SessionFault::PortRemoved - } - SerialConnectError::PermissionDenied { .. } => { - SessionFault::Transport(BusError::PermissionDenied) - } - SerialConnectError::PortBusy { .. } => SessionFault::Transport(BusError::PortBusy), - SerialConnectError::NotCharacterDevice { .. } - | SerialConnectError::InvalidPathEncoding { .. } - | SerialConnectError::InvalidSettings(_) - | SerialConnectError::StableIdentityRequired { .. } - | SerialConnectError::UnsupportedRs485Ioctl { .. } - | SerialConnectError::Io { .. } => SessionFault::Transport(BusError::Io(error.to_string())), - } -} - #[cfg(test)] mod tests { use std::{path::PathBuf, sync::Arc}; diff --git a/crates/lantern-app/src/application/connection.rs b/crates/lantern-app/src/application/connection.rs index 05c64273..b82b15b3 100644 --- a/crates/lantern-app/src/application/connection.rs +++ b/crates/lantern-app/src/application/connection.rs @@ -3,16 +3,34 @@ use std::time::Instant; use lantern_domain::{IdentificationMatch, SessionId}; use crate::{ - ConnectionAction, ConnectionAttemptKind, ConnectionEffect, ConnectionFailure, ConnectionStep, - Connectivity, FaultTracker, MonitoringEffect, SerialConnectError, SessionEffect, SessionInput, - SessionState, identification_error_attempt, identification_report_export, + BusError, ConnectionAction, ConnectionAttemptKind, ConnectionEffect, ConnectionFailure, + ConnectionStep, Connectivity, FaultTracker, MonitoringEffect, SerialConnectError, + SessionEffect, SessionFault, SessionInput, SessionState, identification_error_attempt, + identification_report_export, }; use super::{ ApplicationEffect, ApplicationMonitoringState, ApplicationParameterState, ApplicationState, - session_fault_for_connect_error, }; +fn session_fault_for_connect_error(error: &SerialConnectError) -> SessionFault { + match error { + SerialConnectError::Missing { .. } | SerialConnectError::IdentityChanged { .. } => { + SessionFault::PortRemoved + } + SerialConnectError::PermissionDenied { .. } => { + SessionFault::Transport(BusError::PermissionDenied) + } + SerialConnectError::PortBusy { .. } => SessionFault::Transport(BusError::PortBusy), + SerialConnectError::NotCharacterDevice { .. } + | SerialConnectError::InvalidPathEncoding { .. } + | SerialConnectError::InvalidSettings(_) + | SerialConnectError::StableIdentityRequired { .. } + | SerialConnectError::UnsupportedRs485Ioctl { .. } + | SerialConnectError::Io { .. } => SessionFault::Transport(BusError::Io(error.to_string())), + } +} + impl ApplicationState { pub(super) fn reduce_connection(&mut self, action: ConnectionAction) -> Vec { match action {