pub enum CurrentScreen { Main, Add, Settings, Delete, Exit, } pub enum EditingField { FromIP, FromPort, ToIP, ToPort, } pub enum EntryValError { None, ToPortValError, FromPortValError, ToIPValError, FromIPValError, } pub enum AppStatus { Welcome, Editing, Error(EntryValError), Added, Saved, Deleted, } pub fn entryValError2Field(err: &EntryValError) -> EditingField { match err { EntryValError::ToPortValError => EditingField::ToPort, EntryValError::FromPortValError => EditingField::FromPort, EntryValError::ToIPValError => EditingField::ToIP, EntryValError::FromIPValError => EditingField::FromIP, EntryValError::None => EditingField::FromIP, } }