aboutsummaryrefslogtreecommitdiff
path: root/rust/src/implementation/passwordmaker/thread_messages.rs
blob: bba3dfa186c1431ab18899fae9b1c42139c9ee36 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
use std::sync::Arc;
use passwordmaker_rs::{GenerationError,SettingsError};
use crate::implementation::profiles::GenerationSettings;

pub(super) enum HelperToUi {
    Generated {
        password : String,
    },
    GenerationFailed {
        error : GenerationIssue
    },
    GenerationStarted
}

pub(super) struct GeneratePasswordTask{
    pub(crate) input : String,
    pub(crate) master_password : String,
    pub(crate) generation_settings : Arc<GenerationSettings>
}

pub(super) enum UiToHelper {
    Shutdown,
    GeneratePassword(GeneratePasswordTask),
}

pub(super) enum GenerationIssue {
    Settings(SettingsError),
    Input(GenerationError),
}

impl From<SettingsError> for GenerationIssue {
    fn from(s: SettingsError) -> Self {
        GenerationIssue::Settings(s)
    }
}

impl From<GenerationError> for GenerationIssue {
    fn from(g: GenerationError) -> Self {
        GenerationIssue::Input(g)
    }
}