ms_autodiscover/types/
response.rs

1#[cfg(feature = "pox")]
2use super::pox::{self, Response as PoxResponse};
3
4pub enum AutodiscoverResult {
5    Ok(AutodiscoverResponse),
6    Redirect(RedirectType),
7    Error(Error),
8}
9
10impl AutodiscoverResult {
11    pub fn error<M: Into<String>>(message: M) -> Self {
12        AutodiscoverResult::Error(Error::new(message))
13    }
14}
15
16pub enum RedirectType {
17    Url(String),
18    Email(String),
19}
20
21pub struct Error {
22    message: String,
23}
24
25#[cfg(feature = "pox")]
26impl From<&pox::Error> for Error {
27    fn from(error: &pox::Error) -> Self {
28        Self::new(format!("Code {}, {}", error.code(), error.message()))
29    }
30}
31
32impl Error {
33    pub fn new<M: Into<String>>(message: M) -> Self {
34        Self {
35            message: message.into(),
36        }
37    }
38
39    pub fn message(&self) -> &str {
40        self.message.as_ref()
41    }
42}
43
44#[derive(Debug)]
45pub enum AutodiscoverResponse {
46    #[cfg(feature = "pox")]
47    Pox(PoxResponse),
48}